前几天我介绍了<em>java</em>异常处理机制。介绍了异常类的作用、处理异常的两种方式以及使用场景。在本章中,我将介绍如何定义自己的异常类。想要自定义异常类,我们首先可以看看jdk是怎样做的。以我们熟悉的运行时异常
2021-05-28 15:31:38
前幾天我介紹了java異常處理機制。介紹了異常類的作用、處理異常的兩種方式以及使用場景。在本章中,我將介紹如何定義自己的異常類。
想要自定義異常類,我們首先可以看看jdk是怎樣做的。以我們熟悉的運行時異常類RuntimeException為例:
我們看到jdk自帶的運行時異常類繼承了Exception類。再來看看之前介紹過的空指針異常:
我們發現空指針異常NullPointException類繼承了運行時異常RuntimeException類。由此得出,如果我們要自定義一個異常類,我們也需要繼承一個Exception類。那麼我們繼承哪個類呢?
從使用場景來分析,我們之所以自定義異常是為了讓異常類更加契合我們的使用場景。一般來說我們通常使用if語句判斷業務的條件是否ok,如果條件達成,就執行業務;如果不ok,繼續判斷下一個分支。如果所有條件都不ok,我們就會返回一個錯誤資訊給呼叫者。如果我們將錯誤資訊封裝到異常物件裡面拋出,在程式的最上層再使用try-catch程式碼塊捕獲該異常,就可以拿到異常訊息返給呼叫者。由於是在程式運行過程中由我們主動拋出的異常,所以這種異常是一種運行時異常。
所以,建議自定義異常時繼承運行時異常RuntimeException。參考上圖的空指針異常,我們可以很方便地創建自己的異常類。如圖是我自己創建的自定義異常類:
我們運行程式後發現自定義的異常已經生效了,同時由於我們自定義異常類的構造器方法,所以我們可以在構造器方法裡面處理一些程式報錯時的邏輯。
異常類實際上也是一個類,也可以加入我們想要加上的一些屬性來幫我們更好地處理異常。比如我需要返回一個錯誤碼,很簡單,我們只需要給我們的異常類新增一個表示錯誤碼的屬性,並在有參構造方法裡面給該屬性賦值即可:
以上就是本節的全部內容了。如果各位小夥伴有疑問,歡迎留言交流探討。
相關文章
前几天我介绍了<em>java</em>异常处理机制。介绍了异常类的作用、处理异常的两种方式以及使用场景。在本章中,我将介绍如何定义自己的异常类。想要自定义异常类,我们首先可以看看jdk是怎样做的。以我们熟悉的运行时异常
2021-05-28 15:31:38
云谷校区项目的主创设计师是日本三菱地所的建筑设计师佐藤琢也。从最初的设计方案到一步步把方案变成现实,佐藤在这个项目上前后“蹲”了4年时间,开过无数次会,吵过无数次架,现在说着一口流利的中文。在佐藤的<em>iPad</e
2021-05-28 15:31:22
车内部分,全新捷豹XFL中控台进行了重新设计,两侧可旋转隐藏式空调出风口设计取消,采用视觉效果更宽的贯穿式出风口设计,辅以木纹装饰板和皮革包裹,中央配备悬浮式11.4英寸Pivi Pro娱乐信息系统,支持苹果CarPlay和<em>Androi
2021-05-28 15:30:35
意料之外的开箱 洛斐这款小浪蓝牙键盘包装采用的是抽拉设计,看着这个正面,感上面画着是一个行李箱?背面则是键盘的型号参数,4000mAH的大电池,支持Mac/ios/win/<em>android</em>。拉出里面全黄的包装盒,能看到在包装盒底部有
2021-05-28 15:30:02
个人自行办理退税,可通过个人所得税APP(安卓<em>Android</em>系统在应用市场搜索 “个人所得税”下载安装;苹果IOS系统通过App Store搜索“个人所得税”下载安装)或网页端(网址:https:// etax.chinatax.gov.cn)办理。接到退
2021-05-28 15:01:45
整体而言,这段时间使用体验非常不错,<em>Android</em>手表与手机的互动发展得非常快,但成长也需要更多的时间,可以说是一款「内在美,外在美」的智能手表。 现在,只要你有足够的预算,智能手表肯定比智能手环体验要好很
2021-05-28 15:01:41