首頁 >Java >java教程 >Java 異常處理圖文實例

Java 異常處理圖文實例

零下一度
零下一度原創
2017-07-23 10:34:141290瀏覽

Java 異常處理

異常是程式中的一些錯誤,但並不是所有的錯誤都是異常,並且錯誤有時是可以避免的。

比如說,你的程式碼少了一個分號,那麼執行出來結果是提示是錯誤java.lang.Error;如果你用System.out.println(11/0),那麼你是因為你用0做了除數,會拋出java.lang.ArithmeticException 的例外。

異常發生的原因有很多,通常包含以下幾大類:

使用者輸入了非法資料。

要開啟的檔案不存在。

網路通訊時連線中斷,或JVM記憶體溢位。

這些異常有的是因為使用者錯誤引起,有的是程式錯誤引起的,還有其它一些是因為物理錯誤引起的。 -

要理解Java異常處理是如何運作的,你需要掌握以下三種類型的例外:

檢查性例外:最具代表的檢查性異常是使用者錯誤或問題引起的異常,這是程式設計師無法預見的。例如要開啟一個不存在檔案時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略。

執行階段異常: 運作時異常是可能被程式設計師避免的異常。與檢查性異常相反,運行時異常可以在編譯時被忽略。

錯誤: 錯誤不是異常,而是脫離程式設計師控制的問題。錯誤在程式碼中通常被忽略。例如,當堆疊溢出時,一個錯誤就發生了,它們在編譯也檢查不到的。

1.繼承關係

# 2.Error

程式運行時發生的無法被處理的錯誤,一旦發生,JVM終止執行。

3.Exception

Exception是程式編譯與執行時間出現的錯誤,一旦出現,JVM將告知程式設計師處理,處理得當,程式依然可以執行,這一點不同與Error,Error一旦發生,無法處理,程式立即終止。
分為兩種:

  • 運行時異常:在執行時間發生,RuntimeException類別及子類別。編譯時不需要處理,發生在執行階段。 常見的有NullPointerException\StringIndexOutOfBounds \ClassCastException  \ArrayIndexOutOfBounds。

  • 編譯時異常(受查異常):程式碼寫時必須處理的異常,若不處理,編譯無法通過。編譯時異常在編譯程式碼階段設定了處理措施,所以即使發生異常,可能也不會影響程式的正常運行,有些系統因此將編譯時異常視作正常情況處理,例如Spring預設發生編譯時異常時正常提交。在程式中明確地拋出異常相當於編譯階段必須處理的異常,屬於編譯時異常。常見的有ClassNotFoundException \FileNotFounException\ParseException\SQLException\IOException。

兩種異常劃分的依據是實際發生的機率,JVM將發生幾率高的異常當做受查異常,要求程式設計師在編寫程式碼時處理,而執行時異常JVM認為發生幾率很低,不需要程式設計師處理。

   4.try...catch...finally...

  • 用於在方法內部捕獲並處理異常。

  • 將可能發生例外的語句區塊放在try後,例外發生時try語句區塊停止執行,跳到catch語句區塊執行,catch語句區塊執行完畢,將繼續執行catch語句區塊後面的程式碼。

  • 無論是否發生例外,finally語句區塊都會執行,通常會將關閉資源的程式碼放在其中。

   5.自訂例外

    繼承Exception,在指定條件下拋出例外"throw MyException(xxxx )",目的是詳細反映程式運作狀況。

以上是Java 異常處理圖文實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn