1 定义功能时,功能中有什么问题,都应该进行预先的处理比如try catch
如果处理不了,应该通过throws 声明抛出,让调用者进行处理
2 调用了抛出异常的功能函数,应该进行处理,如果使用trycatch处理的话
被调用的功能上抛出几个异常,就应该对应几个catch语句
必须要对多个异常进行针对性的处理。
3 如果出现多个catch中存在着父类异常的catch,那么这个catch一定放在catch的最后
通常这种情况在面试很多见
4 如果函数内抛出异常,那么一定要在函数上声明,否则编译失败
但是,要注意,如果函数内容抛出的异常是运行时异常,那么函数上不可以用throws声明的
记住,throws声明异常不仅仅是为了编译通过,更是为了让调用者对其进行处理
5 如果函数内抛出异常,进行了本功能内部的处理
但是处理的并不完全,这时应该在异常处理中,继续将异常抛出,在函数上声明,让调用者知道问题的存在
但是有可能需要将异常进行转换,尽量抛出调用者识别的异常
6 当子类覆盖父类中带有异常声明的放法时,子类方法只能声明父类的异常或该异常的子类
如果父类抛出多个异常,那么子类在覆盖时,只能抛出父类异常的子集
如果父类和接口中的方法没有声明抛出过异常,那么子类的方法覆盖父类方法时,也不能抛出异常
如果子类中的方法发生了异常,那么子类只能trycatch,不能用throws声明
如果非要在函数内抛出异常,那么只能抛出runtimeexception,因为这种异常不用在函数上声明
|
|