异常-try...catch的方式处理异常2

  1 package cn.itcast_02;
  2 
  3 /*
  4  * A:一个异常
  5  * B:二个异常的处理
  6  *         a:每一个写一个try...catch
  7  *         b:写一个try,多个catch
  8  *             try{
  9  *                 ...
 10  *             }catch(异常类名 变量名) {
 11  *                 ...
 12  *             }
 13  *             catch(异常类名 变量名) {
 14  *                 ...
 15  *             }
 16  *             ...
 17  * 
 18  *             注意事项:
 19  *                 1:能明确的尽量明确,不要用大的来处理。
 20  *                 2:平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面。
 21  * 
 22  * 注意:
 23  *         一旦try里面出了问题,就会在这里把问题给抛出去,然后和catch里面的问题进行匹配,
 24  *         一旦有匹配的,就执行catch里面的处理,然后结束了try...catch,继续执行后面的语句。
 25  */
 26 public class ExceptionDemo2 {
 27     public static void main(String[] args) {
 28         
 29         // method1();
 30 
 31         // method2();
 32 
 33         // method3();
 34 
 35         method4();
 36     }
 37 
 38     public static void method4() {
 39         int a = 10;
 40         int b = 0;
 41         int[] arr = { 1, 2, 3 };
 42 
 43         // 爷爷在最后
 44         try {
 45             System.out.println(a / b);
 46             System.out.println(arr[3]);
 47             System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");
 48         } catch (ArithmeticException e) {
 49             System.out.println("除数不能为0");
 50         } catch (ArrayIndexOutOfBoundsException e) {
 51             System.out.println("你访问了不该的访问的索引");
 52         } catch (Exception e) {//它可以匹配所有的异常
 53             System.out.println("出问题了");
 54         }
 55         
 56         System.out.println("over");
 57 
 58         /* 
 59          try {
 60             System.out.println(a / b);
 61             System.out.println(arr[3]);
 62             System.out.println("这里出现了一个异常,你不太清楚是谁,该怎么办呢?");
 63         } catch (Exception e) {//爷爷在前面是不可以的
 64             System.out.println("出问题了");
 65         } catch (ArithmeticException e) {
 66             System.out.println("除数不能为0");
 67         } catch (ArrayIndexOutOfBoundsException e) {
 68             System.out.println("你访问了不该的访问的索引");
 69         }
 70 
 71         System.out.println("over");*/
 72     }
 73 
 74     // 两个异常的处理,写一个try,多个catch
 75     public static void method3() {
 76         int a = 10;
 77         int b = 0;
 78         int[] arr = { 1, 2, 3 };
 79 
 80         try {
 81             System.out.println(arr[3]);
 82             System.out.println(a / b);
 83             // System.out.println(arr[3]);
 84         } catch (ArithmeticException e) {
 85             System.out.println("除数不能为0");
 86         } catch (ArrayIndexOutOfBoundsException e) {
 87             System.out.println("你访问了不该的访问的索引");
 88         }
 89 
 90         System.out.println("over");
 91     }
 92 
 93     // 两个异常的处理,每一个写一个try...catch
 94     public static void method2() {
 95         int a = 10;
 96         int b = 0;
 97         try {
 98             System.out.println(a / b);
 99         } catch (ArithmeticException e) {
100             System.out.println("除数不能为0");
101         }
102 
103         int[] arr = { 1, 2, 3 };
104         try {
105             System.out.println(arr[3]);
106         } catch (ArrayIndexOutOfBoundsException e) {
107             System.out.println("你访问了不该的访问的索引");
108         }
109 
110         System.out.println("over");
111     }
112 
113     // 一个异常的处理
114     public static void method1() {
115         // 第一阶段
116         int a = 10;
117         // int b = 2;
118         int b = 0;
119 
120         try {
121             System.out.println(a / b);
122         } catch (ArithmeticException ae) {
123             System.out.println("除数不能为0");
124         }
125 
126         // 第二阶段
127         System.out.println("over");
128     }
129 }

 异常-try...catch的方式处理异常2