异常的注意事项
多个异常使用捕获该如何处理:
-
多个异常分别处理
try{
}catch(ArrayIndexOutOfBoundsException e){
}try{
}catch(IndexOutOfBoundsException e){
}
-
多个异常一次捕获,多次处理
try{
}catch(Exception类或子类 变量名){
}catch(Exception类或子类 变量名){
}
一个try多个catch注意事项:
catch里定义的异常变量,如存在子父类关系,子类异常变量必须写在上面,否则报错
ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException
-
多个异常一次捕获一次处理
try{
}catch(Exception e){
}
- 运行时异常(runtimeException)被抛出可以不处理,既不捕获也不声明
- 如果finally有return语句,永远返回finally中的结果,避免该情况
- 如果父类抛出多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常(父类异常是什么样,子类异常就什么样)
- 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常,此时子类产生该异常,只能捕获处理,不能声明抛出(父类异常是什么样,子类异常就什么样)