1 /*
2 JDK7出现了一个新的异常处理方案:
3 try{
4
5 }catch(异常名1 | 异常名2 | ... 变量 ) {
6 ...
7 }
8 如果编译期异常,又不知道异常名,就跟进看源码,那里面就能找到
9 注意:这个方法虽然简洁,但是也不够好。
10 A:处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理)
11 B:多个异常间必须是平级关系。
12 */
13 public class ExceptionDemo3 {
14 public static void main(String[] args) {
15 method();
16 }
17
18 public static void method() {
19 int a = 10;
20 int b = 0;
21 int[] arr = { 1, 2, 3 };
22
23 // try {
24 // System.out.println(a / b);
25 // System.out.println(arr[3]);
26 // System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");
27 // } catch (ArithmeticException e) {
28 // System.out.println("除数不能为0");
29 // } catch (ArrayIndexOutOfBoundsException e) {
30 // System.out.println("你访问了不该的访问的索引");
31 // } catch (Exception e) {
32 // System.out.println("出问题了");
33 // }
34
35 // JDK7的处理方案
36 try {
37 System.out.println(a / b);
38 System.out.println(arr[3]);
39 } catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {
40 System.out.println("出问题了");
41 }
42
43 System.out.println("over");
44 }
45
46 }