1. 程式人生 > 其它 >java-異常-異常捕捉及多catch情況(try-catch)

java-異常-異常捕捉及多catch情況(try-catch)

 1 package p1.exception;
 2 
 3 
 4 /*
 5  * 異常處理的捕捉形式:
 6  * 這是可以對異常進行鍼對性處理的方式.
 7  * 
 8  * 具體格式是:
 9  * try{ 
10  *        //需要被檢測異常的程式碼
11  * }
12  * catch(異常類 變數){ //該變數用於接收發生的異常物件
13  *         //處理異常的程式碼
14  * }
15  * finally{
16  *         //一定會被執行的程式碼
17  * }
18  */
19 class FuShuIndexException extends
RuntimeException /*Exception*/{//可以改繼承執行異常,就不會報編譯錯誤 20 public FuShuIndexException() { 21 // TODO Auto-generated constructor stub 22 } 23 24 FuShuIndexException(String msg){ 25 super(msg); 26 } 27 } 28 class Demo { 29 public static int method(int[] arr,int index) throws
NullPointerException, FuShuIndexException { 30 31 if (arr == null) { 32 throw new NullPointerException("沒有任何陣列實體"); 33 } 34 if (index<0) { 35 throw new FuShuIndexException("角標變成負數了"); 36 } 37 return arr[index]; 38 } 39 40
} 41 42 public class ExceptionDemo4 { 43 44 public static void main(String[] args) { 45 46 int[] arr = new int[3]; 47 Demo d = new Demo(); 48 try { 49 // int num = d.method(arr,0); 50 int num = d.method(null,-30); 51 System.out.println("num="+num); 52 } catch (FuShuIndexException e) { 53 // TODO: handle exception 54 System.out.println("message:"+e.getMessage());//message:角標變成負數了 55 System.out.println("string:"+e/*.toString() 輸出語句後輸出都會變成字串*/);//string:p1.exception.FuShuIndexException: 角標變成負數了 56 e.printStackTrace();//jvm預設的異常處理機制就是呼叫異常物件的該方法 57 System.out.println("負數角標異常"); 58 } catch (NullPointerException e) { 59 // TODO: handle exception 60 System.out.println(e.toString()); 61 }/*catch(Exception e) {//多catch時父類的catch放在最下面,否則編譯失敗 62 63 }*/ 64 65 66 System.out.println("over"); 67 68 } 69 70 } 71 /* 72 log4j log for (java; ;) { 73 74 } 75 */
ExceptionDemo4