隔着超薄肉丝进入小说_男女刺激性视频大片_女教师的诱波多野结衣_一级欧美过瘾大片

當前位置: 首頁 / 技術干貨 / 正文
Java處理異常的幾個小知識

2020-07-15

Java培訓

  好程序員Java培訓分享Java處理異常的幾個小知識,如果 Java 方法不能按照正常的流程執行,那么可以通過另外一種途徑退出:拋出一個封裝了錯誤信息的對象,這個就是Java的異常;當發生異常時,后面的代碼無法繼續執行,而是由異常處理器繼續執行。

好程序員

  一、異常的分類

  Throwable是所有異常的超類,下一級可以分為Error和Exception :

  1. Error

  Error是指Java運行時系統內部的錯誤,或者說它代表了JVM本身的錯誤,通常都是比較嚴重的錯誤,比如內存溢出, 虛擬機錯誤等等;Error通常和硬件或JVM有關,和程序本身無關,所以不能被代碼捕獲和處理。

  2. Exception

  我們經常說的異常是指Exception,又可以分成運行時異常和檢查異常。

  RuntimeException:運行時異常,這類異常在編譯期間不強制代碼捕捉,但是可能在在 JVM 運行期間拋出異常;出現此類異常,通常是代碼的問題,所以需要修改程序避免這類異常。常見的運行時異常,比如:NullPointerException、ClassCastException 等等。

  CheckedException:檢查異常,這種異常發生在編譯階段,Java 編譯器會強制代碼去捕獲和處理此類異常;比如:ClassNotFoundException、IllegalAccessException 等等。

  二、異常的處理方法

  捕獲異常使用 try...catch 語句,把可能發生異常的代碼放到 try {...} 中,然后使用catch 捕獲對應的異常;我們也可以在代碼塊中使用Throw向上級代碼拋出異常;在方法中使用 throws 關鍵字,向上級代碼拋出異常;

  三、Throw和throws的區別

  Throw在方法內,后面跟著異常對象;而throws是用在方法上,后面跟異常類;

  Throw會拋出具體的異常對象,當執行到Throw的時候,方法內的代碼也就執行結束了;throws用來聲明異常,提醒調用方這個方法可能會出現這種異常,請做好處理的準備,但是不一定會真的出現異常。

  四、使用Exception的一些建議

  1. 不要試圖通過異常來控制程序流程,比如開發一個接口,正確的做法是對入參進行非空驗證,當參數為空的時候返回“參數不允許為空”,而不應該捕捉到空指針的時候返回錯誤提示。

  2. 僅捕獲有必要的代碼,盡量不要用一個try...catch 包住大段甚至整個方法內所有的代碼,因為這樣會影響JVM對代碼進行優化,從而帶來額外的性能開銷。

  3. 很多程序員喜歡catch(Exception e),其實應該盡可能地精確地指出是什么異常。

  4. 不要忽略異常,捕捉到異常之后千萬不能什么也不做,要么在catch{...}中輸出異常信息,要么通過Throw或throws拋出異常,讓上層代碼處理。

  5. 盡量不要在catch{...}中輸出異常后,又向上層代碼拋出異常,因為這樣會輸出多條異常信息,而且它們還是相同的,這樣可能會產生誤導。

  6. 不要在finally{...}中寫return,因為try{...} 在執行return之前執行 finally{...} ,如果 finally{...}中有return,那么將不再執行try{...}中的return。

  免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯系刪除

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號