標籤:on() string 傳回值 code 相對 ring rgs ide get
3.JAVA異常進階1.Run函數中拋出的異常
- 1.run函數不會拋出異常
- 2.run函數的異常會交給UncaughtExceptionhandler處理
- 3.預設的UncaughtExceptionHandler為空白 Thread.setUncaughtExceptionHandler(new UncaughtExceptionHandler(){…...})
- 4.啟動線程 Thread.start()
- 例子
UncaughtExceptionTask task=new UncaughtExceptionTask(); Thread thread = new Thread(task); thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { System.out.println("處理run函數拋出的異常"); System.out.println(t+":"+e); } }); thread.start(); } class UncaughtExceptionTask implements Runnable{ public void run(){ System.out.println(10/0);//throws uncheckerException: ArithmeticException }}
- 函式宣告時候指定拋出的異常名
- void function() throws MyException{/*code*/}
- a.函數code拋出的異常類型必須與函數throws的異常類型對應
- b.函數code可以不拋出異常(如果拋出異常就必須與throws的異常類型相對應)
- 異常資訊顯示
- Exception.printstackTrace();
- Exception.printstackTrace(System.out);—輸出重新導向
- Exception.getMessage();
- Exception.getstackTrace();—傳回值是一個數組
- 最主要的異常資訊提取函數還是e.printStackTrace();
- printStackTrace();
- 函數功能:列印出異常拋出的處和函數的調用路徑
- 預設的輸出路徑 System.err 標準錯誤流
- 重新導向輸出printStackTrace(System.out);
3.Java異常進階