1. 程式人生 > >對檢查性異常和非檢查性異常的理解

對檢查性異常和非檢查性異常的理解

強制 bsp 處理異常 代碼 cat cnblogs alt 多線程 學習

從開始學習Java,就學習了異常處理,知道異常分為檢查性異常和非檢查性異常,RuntimeException屬於非檢查性異常,知道異常的分類。但工作之前沒有很多的實際應用,知識書本上課件上的定義,對兩種異常的理解並不是很清楚。工作後在實際代碼中,逐漸捋順清楚了,這裏記錄一下,基礎知識就不說了,書上課件上網上資料很豐富,這裏只總結對兩種異常的理解。 1、檢查性異常: JAVA編譯器強制要求用try{}catch(){}塊進行處理,如果不處理則必須在包含可能發生異常的代碼的方法上用throws顯示地拋出異常,由調用該方法的方法catch捕捉處理異常,否則程序編譯不會通過,會有紅叉提示。 如: 技術分享 技術分享

這裏必須要用try catch塊將代碼包圍起來或者throws顯式 拋出異常,否則編譯不會通過。 2、非檢查性異常:JAVA編譯器可以通過的異常,可以用try{}catch(){}進行處理,處理過後程序可以繼續向下執行,也可以不處理,由調用它的方法進行處理。當然,也可以一直不處理,到了最上層,多線程的話線程會終止,單線程的話主程序會終止,也就是說運行時異常如果一直不進行處理,則會起到使程序停止的作用。 如: 技術分享 技術分享

這裏雖然拋出了異常,但只是阻止程序繼續運行,並不會編譯報錯,無需在方法上用throws語句顯式拋出異常。

對檢查性異常和非檢查性異常的理解