Java基礎 03異常Exception

2021-09-05 09:00:51 字數 1909 閱讀 9740

編譯(checked)異常:指的是,**在編譯的時候,jvm就檢查**的正確性,從而丟擲編譯時就已能發現的異常

執行(unchecked)異常:指的是,**在執行的過程中有可能丟擲的異常,我們自定義異常時都是繼承runtimeexception

都是繼承runtimeexception的。之所以自定義業務異常,完全是為了起乙個業務名字的異常類,拋開這一點,我們的程式中其實沒必要自定義異常類的,就在**有可能丟擲異常的地方 new runtimeexception("我的業務異常描述資訊");足夠用!

通過以上圖的示例會發現,當我們自己編寫程式時,需要某種業務不合理時,就丟擲異常,我們自定義的異常都是繼承runtimeexception的,小示例:

public class a

/*** 方法內部:當發現某種業務不符合我們的預期時,捕獲異常後可以再次丟擲它

*/public static void b()catch(exception e)

} /**

* 方法宣告:執行時unchecked異常是可以不用捕獲,不用宣告的

*///public static void c() throws arithmeticexception

/*** 方法宣告:編譯checked異常,如果方法體內沒捕獲,必須在宣告方法時throws

*/public static void d() throws classnotfoundexception

public static void main(string args)

catch(exception e){}

}}

異常概念:error:執行時系統錯誤,程式無法管,jvm虛擬機器的事

exception:自定義異常都是繼承runtimeexception的,程式可以捕獲和處理異常

try{}塊:try塊內有可能丟擲異常,try內的return;是指退出try塊

catch(exception e){}塊:捕獲異常加以處理,可再次丟擲異常,catch內的return;是指退出try塊

finally{}塊:一定會被執行的,finally內的return;是指從當前方法返回

鏈式異常:

鏈式異常:引起當前異常的背後異常

初始化:throwable(string msg, throwable causeexcp) //構造異常,背後異常是causeexcp

獲取背後異常:getcause() //如果當前異常有背後異常就返回,沒有背後異常就返回null

設定背後異常:initcause(throwable causeexcp) //設定當前異常的背後異常為causeexcp

異常新特性:

jdk7新增異常特性:

資源自動釋放:try(資源){}catch(e e){}

多重捕獲:catch(myexceptionx | myexceptiony e){}

精確重新丟擲:void ***method() throws myexceptionx,myexceptiony

catch(exception e) }

異常傳遞:

如果異常沒捕獲,則異常傳至上層呼叫方法直至jvm虛擬機器。jvm預設異常處理機制,就是列印出異常的堆疊追蹤資訊並停止程式。

Python基礎03(異常處理)

3 try except else語句 4 try except finally語句 5 自定義異常 raise語句 6 習題 try 可能發生異常的 except 如果出現異常執行的 注意 使用except而不帶任何異常型別,這不是乙個很好的方式,我們不能通過該程式識別出具體的異常資訊,因為它捕獲...

java基礎總結 03

算術運算子a b 的用法 a 加法 b 正號 c 字串連線符 c 和 的區別 資料做除法操作的時候,取得是商,取得是餘數 d 和 的用法 a 他們的作用是自增或者自減 b 使用 單獨使用 放在運算元據的前面和後面效果一樣。a 或者 a效果一樣。參與操作使用 放在運算元的前面 先自增或者自減,再參與操...

關於java基礎 異常

異常 分為兩類 錯誤 error 異常 exception 錯誤 就是程式設計師無能為力,不能通過 解決問題 例如 jvm崩潰,斷電,資源耗盡,電腦著火 異常 出現異常時,責任是程式設計師的 邏輯不嚴謹 但是可以通過修改 解決異常 當異常出現的時候,程式就會中斷,如果希望出現異常後,程式繼續執行,那...