首页 > 代码库 > java7(2)——使用mutilcatch注意事项
java7(2)——使用mutilcatch注意事项
从java7推出mutilcatch后,到现在都少有看到人使用,可能是这个功能真正用起来,比起多个catch并不快多少,而且现在的工IDE具太厉害了,什么都有快捷键!说是这么说,我们还是得了解一下如何使用mutilcatch。
mutilcatch的使用很简单,只要注意以下几点:
(1)不同的异常用"|"分隔开来,但只有一个参数e,e的具体类型是NumberFormatException 和ArithmeticException 在类继承层次结构上的最小祖先。
(2)假如要捕获异常A和异常B,那么A中不能包含B,B也不能包含A,不然在编译器IDE就不给通过。如图所示,alternative 的意思是两者只能选择其中一个。因为两个异常有包含关系。
(3)使用catch多个异常的处理方法,哪个异常先抛出来,就先捕获那个异常,而在那个异常下面的代码将不会继续执行,所以没有被打印出来。
1 public class Test { 2 3 public static void test() { 4 5 try { 6 7 int i = 2/0; // ArithmeticException 8 Integer.parseInt("abc"); // NumberFormatException 9 10 } catch (ArithmeticException | NumberFormatException e) {11 12 System.out.println(e);13 }14 }15 16 public static void main(String[] args) {17 18 test();19 // 测试结果:java.lang.ArithmeticException: / by zero20 }21 }
1 public class Test { 2 3 public static void test() { 4 5 try { 6 7 Integer.parseInt("abc"); // NumberFormatException 8 int i = 2/0; // ArithmeticException 9 10 } catch (ArithmeticException | NumberFormatException e) {11 12 System.out.println(e);13 }14 }15 16 public static void main(String[] args) {17 18 test();19 // 测试结果:java.lang.NumberFormatException: For input string: "abc"20 }21 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。