Java學習(異常、斷言和日誌)

第7章 異常、斷言和日誌

  • 異常結構分類
    所有的異常都是由 Throwable 繼承而來,但在下一層立即分解爲兩個分支:Error 和 Exception。Exception這個層次結構又分解爲兩個分支: 一個分支派生於RuntimeException; 另一個分支包含其他異常。

    • 派生於 RuntimeException 的異常包含下面幾種情況(只是簡單列舉,可能包含的不完全)出現這個異常一般都是自己的代碼有問題
      • 錯誤的類型轉換。
        • 數組訪問越界。
        • 訪問 null 指針。
      • 其他異常
        • 試圖在文件尾部後面讀取數據
        • 試圖打開一個不存在的文件
        • 試圖根據給定的字符串查找Class對象,而這個字符串表示的類並不存在
  • 拋出異常的四種情況

    • 調用一個拋出受查異常的方法。
    • 運行中發現錯誤,利用throw語句拋出一個受查異常。(程序自主,代碼可控)
    • 程序出現錯誤,拋出非受查異常。(程序不自主,代碼不可控)
    • Java虛擬機出現內部錯誤
  • 捕獲異常。利用try/catch來捕獲異常。

    • 如果try塊中出現異常,程序將會跳過剩下的代碼。
    • 程序將執行catch塊中的代碼。
    • 如果try塊中拋出了catch中沒有聲明的異常,程序會立即退出。
  • 處理異常的幾個技巧

    • 異常處理不能代替簡單的測試

    • 不要過分的細化異常

    • 利用異常層次結構

    • 不要壓制異常

    • 在監測錯誤時,嚴格要比放任好

    • 不要害怕傳遞異常

  • 斷言用處不是很多,現在用IDE自帶的斷點可能會好一點

  • 日誌管理可以使用單獨的插件或者工具,最好項目中的日誌都是統一的

因爲目前對於異常的處理還是比較少,感覺只要瞭解異常的處理方法和實際碼代碼中異常的正常流程即可。
就這樣吧,結束。

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