异常注意事项_多异常的捕获处理,异常注意事项_finally有return语句
异常注意事项_多异常的捕获处理:
多个异常使用捕获又该如何处理呢?
1.多个异常分别处理。
2.多个异常一次捕获,多次处理。
3.多个异常一次捕获一次处理。
一般我们是使用一次捕获多次处理方式,格式如下:
try{ 编写可能会出现异常的代码 }catch(异常类型A e){当try中出现A类型异常,就用该catch来捕获. 处理异常的代码 //记录日志/打印异常信息/继续抛出异常 }catch(异常类型B e){当try中出现B类型异常,就用该catch来捕获. 处理异常的代码 //记录日志/打印异常信息/继续抛出异常 }
注意:这种异常处理方式,要求多个catch中的异常不能相同,并且若catch中的多个异常之间有子父类异常的关系,
那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。
运行时异常被抛出可以不处理。即不捕获也不声明抛出。
如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集。
异常注意事项_finally有return语句:
如果finally有return语句,永远返回finally中的结果,避免该情况.
如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集。
父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
在try/catch后可以追加finally代码块,其中的代码一定会被执行,通常用于资源回收。
package A_Lian_one.Demo18Exception; public class Demo02Exception { public static void main(String[] args) { int a = getA(); System.out.println(a); } private static int getA() { int a =10; try { return a; }catch (Exception e){ System.out.println(e); }finally { a=100; return a; } } }