1. gzyueqian
      13352868059

      Java開發出現異常時處理的小技巧有哪些?

      更新時間: 2021-01-14 16:44:00來源: 粵嵌教育瀏覽量:8651

        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。


        以上就是粵嵌科技給大家整理的關于ajva開發出現異常時處理的小技巧了,在開發的時候掌握好這些小技巧的話是可以避免很多的bug的。如果說你想要學習java的話那么粵嵌科技歡迎大家來我們公司進行實地考察,也可以點擊我們文章下面的獲取試聽資格按鈕來獲取我們的java課程免費試聽資格,在試聽中可以更加深入的了解粵嵌科技。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲限制级资源在线观看 | 日本新一二三区不卡在线观看 | 午夜福利国产观看视频1 | 亚洲Aⅴ午夜福利精品一区 一本精品99久久精品77 | 亚洲精品免费在线观看 | 日本有码中文字幕第一页在线播放 |