国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Java Exception機制的正確姿勢

Astrian / 3148人閱讀

摘要:如何良好的在代碼中設計異常機制本身設計的出發點是極好的,通過編譯器的強制捕獲,可以明確提醒調用者處理異常情況。但使用此種異常后,該會像病毒一樣,得不到處理后會污染大量代碼,同時也可能因為調用者的不當處理,會失去異常信息。

1、異常是什么?

父類為Throwable,有Error和Exception兩個子類

Error為系統級別的異常(錯誤)

Exception下有眾多子類,常見的有RuntimeException,SQLException,IOException等,其中最特殊的為RuntimeException(運行時異常),RuntimeException為unchecked Exception,編譯期不強制捕獲,系統會自動往上拋,如程序無處理,會自動調用e.printStackTrace(),輸出到命令行。RuntimeException以外的異常為check Exception,調用拋出了checked Exception的方法,編譯期會強制要求對異常進行處理(try catch 或者繼續往上拋,此類異常最終必須得到處理,否則編譯不通過)

注:具體詳細結構請查看源碼或通過互聯網渠道搜索

2、為什么要使用異常?

進行代碼設計時,每一行代碼都可能產生錯誤,有些錯誤可以立即處理,而有些錯誤可能在當前的邏輯中無法立即處理(因為作為方法提供者并不知道調用者出錯之后想做什么操作),異常解決的便是這種問題,讓錯誤被延遲處理,,作為提供者只需要告訴用戶出了什么問題,至于用戶得知問題時如何處理,無需關心。

3、JDK中的異常機制

JDK中已有一系列的異常,是Java為開發者提供的常用異常,IO,util等包中的方法也有拋出相關的checked Exception,JDK提供的RuntimeException均因編程錯誤導致,在開發者不使用自定義RuntimeException的情況下,可通過代碼修改進行規避,從這方面看,JDK提供的RuntimeException更大的作用在于調試。

4、如何良好的在代碼中設計異常機制?

checked Exception本身設計的出發點是極好的,通過編譯器的強制捕獲,可以明確提醒調用者處理異常情況。但使用此種異常后,該Exception會像病毒一樣,得不到處理后會污染大量代碼,同時也可能因為調用者的不當處理,會失去異常信息。

而某些提供者與調用者可以處理或者通過契約可以避免的問題也不該濫用checked Exception,只有那些程序之外的問題,程序本身無法保證不出異常時才該使用checked Exception,例如IO,SQL等。

為了代碼的可讀性和穩健性,結合一些資料,我個人的做法是自定義繼承自Runtime Exception的異常,同時可擴展一些功能(結合錯誤碼),把程序中的異常進行統一包裝,再利用ControllerAdvice進行統一的捕獲處理,同時該異常也可以作為所有程序非正常情況終止的出口。

具體使用方法,請參考此demo:https://github.com/Zhangchiii...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66864.html

相關文章

  • 結合Spring發送郵件四種正確姿勢,你知道幾種?

    摘要:我拿網易郵箱賬號舉例子,那么我們如何才能讓你的郵箱賬號可以利用第三方發送郵件這里的第三方就是我們即將編寫的程序。 一 前言 測試所使用的環境 測試使用的環境是企業主流的SSM 框架即 SpringMVC+Spring+Mybatis。為了節省時間,我直接使用的是我上次的SSM項目中整合Echarts開發該項目已經搭建完成的SSM環境。 標題說的四種姿勢指的是哪四種姿勢? 發送text...

    doodlewind 評論0 收藏0
  • NAO機器人學習小計

    摘要:性能和約束只在機器人端可用。機器人的中心在腳上,并且機器人的軀干是筆直向上的的。相對速度,范圍從一個布爾值,表明目標姿勢是否正確達到。在操控機器人時,使用這個方法以達到顯示出動作的效果。機器人可能需要使用者的幫助以達到這個姿勢。 NAO APIs nao的接口全部以AL開頭,全部繼承自ALModule,它被包含在中。下面是ALModule的主要methods。 ALModule API...

    zzzmh 評論0 收藏0
  • Android單元測試 - 驗證函數參數、返回值正確姿勢

    摘要:驗證參數傳遞函數返回值,是單元測試中十分重要的環節。一般形式單元測試下文稱為例子這個單元測試是通過的。不過,僅僅比較兩個對象,這個單元測試還是有問題的。單元測試的細節,已經講得七七八八了。 showImg(http://i1.piimg.com/577986/c22d72463031233b.jpg); 原文鏈接:http://www.jianshu.com/p/77ee7c0270b...

    waltr 評論0 收藏0
  • 紀念我曾經 JAVA 姿勢

    摘要:,關閉不當編譯器警告信息。創建固定大小的線程池。此線程池不會對線程池大小做限制,線程池大小完全依賴于操作系統或者說能夠創建的最大線程大小。此線程池支持定時以及周期性執行任務的需求。 目前在搞 Node.js,曾經的 JAVA 知識忘了好多,為此整理了下,感嘆下工業語言還是有相當的優勢的。 流 Java所有的流類位于java.io包中,都分別繼承字以下四種抽象流類型。 Type 字節...

    The question 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<