1.定义:一个方法不处理这个异常,而是调用层次向上传递,谁调用这个方法,这个异常就由谁处理。
2.throw:将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置:方法体内)
3.throws:如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句
来声明抛出异常。用他修饰的方法向调用者表明该方法可能会抛出异常(可以是一种类型,
也可以是多种类型,用逗号隔开)(位置:写在方法名或方法名列表之后,在方法体之前。)
4.调用可能会抛出异常的方法,必须添加try-catch代码块尝试捕获异常或者添加throws声明
来将异常抛出给更上一层的调用者进行处理,这里需要注意一个细节:新的异常包含原始
异常的所有信息,根据这个我们去追溯最初异常发生的位置。
5.在接口的实现类中,如果定义的接口抽象方法中没有抛出异常,在重写的抽象方法中是不能通过throws这种方式抛出异常的,
因为父类没有抛出异常,子类是不能抛出异常的。
6.当通过try catch这种方法抛出异常的时候要注意抛出异常的顺序,异常范围小的放在前面,异常范围大的放在后面。