2-18

異常:

Throwable:包含Error 和 Exception。

Error :比較嚴重的問題 ,系統性問題 (虛擬機出題,系統出現問題)

Exception:程序出現的一些問題,通常是由於程序人員考慮不周等情況 發生的問題

(程序出現的問題,這些問題本省可以避免)


異常分類:

1.運行時異常:不要求強制處理,只有在運行時可能發生異常

2.受檢查異常(check):必須處理,不能會不會發生異常

(有些操作 jvm認爲可能出現異常機率較大  所以要求強制處理 )


異常處理:

throws:主要針對受檢查異常 ,寫在方法上,表明該方法具有拋出異常的功能 ,能拋異常根據throws 後面跟的異常類型 

( public static void main(String[] args) throws FileNotFoundException )

運行時異常不需要 throws  標明具有拋異常的功能


拋出:

1.jdk拋出:FileInputStream fis=new FileInputStream("D:/11.txt"); 

 異常由jdk拋出來 逐級向上拋出  最後如果main也沒處理 那麼就拋給虛擬機,虛擬機接受異常  立即停止執行

2.人爲拋出:throw 拋異常

throw new Exception("除數不能爲0");


捕獲:try {} catch (Exception e) {} catch (Exception e) {}  finally{}

catch捕獲異常 針對 try中的代碼塊,catch在捕獲的時候只能捕獲參數指定的異常,如果異常被捕獲,那麼不在向下捕獲,跳出捕獲模塊,執行try catch模塊下面的語句

try中產生異常,try中後面代碼不在運行      

finally:不能try中代碼有木有異常 都會執行,除非強制退出JVM

一般 catch (Exception e) {} 放在catch模塊的最後位置


一般不建議使用 try {try {} catch (Exception e) {} } catch (Exception e) {} ,try catch嵌套, 

建議大家採用try {} catch (Exception e) {} catch (Exception e) {} 

catch中不建議編寫業務代邏輯碼  try中代碼要儘量少



//非常不建議,不夠規範

// try {

// int n=i/j;

// }finally{

// System.out.println("--finally--");

// }



自定義異常:

1、能夠更好的查找程序的錯誤

2、讓異常信息更友好



***異常能夠改變程序執行的流程

***提供程序出錯的解決方式之一


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章