1. 程式人生 > >執行時異常與一般異常區別

執行時異常與一般異常區別

Java提供了兩類主要的異常:runtime exceptionchecked exception

checked exception:

  1. checked 異常也就是我們經常遇到的IO異常,以及SQL異常都是這種異常。
  2. 對於這種異常,JAVA編譯器強制要求我們必需對出現的這些異常進行catch。
  3. 所以,面對這種異常不管我們是否願意,只能自己去寫一大堆catch塊去處理可能的異常。
  4. 這類異常一般是外部錯誤,例如試圖從檔案尾後讀取資料等,這並不是程式本身的錯誤,而是在應用環境中出現的外部錯誤.

runtime exception:(執行時異常)

  1. 當出現這樣的異常時,總是由虛擬機器接管。RuntimeException體系包括錯誤的型別轉換、陣列越界訪問和試圖訪問空指標等等.
  2. 假如出現RuntimeException,那麼一定是程式設計師的錯誤.例如,可以通過檢查陣列下標和陣列邊界來避免陣列越界訪問異常.
  3. 出現執行時異常後,系統會把異常一直往上層拋,一直遇到處理程式碼。如果沒有處理塊,到最上層,如果是多執行緒就由Thread.run()丟擲,如果是單執行緒就被main()丟擲。
  4. 丟擲之後,如果是執行緒,這個執行緒也就退出了。如果是主程式丟擲的異常,那麼這整個程式也就退出了。
  5. 執行時異常是Exception的子類,也有一般異常的特點,是可以被Catch塊處理的。只不過往往我們不對他處理罷了。也就是說,你如果不對執行時異常進行處理,那麼出現執行時異常之後,要麼是執行緒中止,要麼是主程式終止。