java異常處理規范


  • 異常處理的優勢【存在意義】:異常檢測者有檢測出異常的能力,但不知道在出現該異常的情況下應該怎么處理。故庫方法一般會拋出異常給調用者來處理。所以總結而言,異常處理的優勢就是,將處理錯誤(調用者處理)從檢測錯誤(被調用者檢測)中分離出來。
  • 異常的分類:
    1. 系統錯誤:內部系統錯誤,虛擬機拋出。免檢。
    2. 異常:由程序和外部環境所引起的錯誤,這些錯誤能被程序捕獲和處理。必檢。
    3. 運行時異常:程序設計錯誤,通常虛擬機拋出。免檢。
  • 關於異常處理需要注意的點:
    1. Exception類,既可能是普通的異常,也可能是運行時異常,故實際編程中最好不要直接拋出Exception,而是拋出其子類。
    2. 運行時異常,只需拋出,無需捕獲處理(java8允許處理,但是不要畫蛇添足)
  • 警告:
    1. Exception的子類中:
      • 必檢異常類型常見的有:FileNotFoundException、IOException(可以動手試試,必須處理的異常);
      • 免檢異常類型常見的有:NullPointerExceptin、ArithmeticException、IndexOutofBoundsException、IllegalArgumentException(拋出后無需處理的異常)
    2. java沒有整數上溢或下溢異常

  • 運行時異常和普通異常:
    • 若出現運行時異常,如NullPointerException,直接導致當前線程中斷;
    • 若出現普通異常:
      • 拋出處理:當前線程中斷;換句話說,當前線程(的當前代碼)不接受你這個異常的存在,我不想理你了。
      • 捕獲處理:當前線程不會中斷,后續繼續處理。你這個異常,當前線程是可以接受的,我還會繼續后續處理。

  • 很顯然,異常的處理應當視我們的業務邏輯需要,做出相應的合理處置方式。
  • 現在,你總該明白什么時候應該(在方法簽名后面)聲明異常,什么時候(在方法中)捕獲異常了吧?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM