不正常,是編譯或者執行時期出現的問題。
l throwable(所有
錯誤或異常的根類)
n error(錯誤,不可挽回的嚴重問題)
n exception(異常根類,可以挽回的問題)
u runtimeexception(執行
時異常);
l 格式
try catch(要
捕獲的異常
變數名) {
處理方式;
l 執行流程:先去執行try中的**,如果
try中的**有異常,判斷
catch
中是否可以捕獲到,如果沒有捕獲到,直接丟擲,如果捕獲到了,就執行對應的
catch
。如果try中的**沒有異常,就跳過
catch
,繼續往下執行
l 注意:乙個try可以對應多個
catch
,只執行乙個
catch。在catch中捕獲的異常,父類不能出現在子類的前面。
l 當我們不想處理,或者沒有能力處理時,這時候可以選擇吧異常給跑出去。
l throws:用在方法宣告位置上,給方法做乙個宣告,宣告此方法有可能會丟擲異常。如果呼叫乙個宣告了異常的方法,呼叫者,也需要宣告異常
l throw:
手動製造乙個異常丟擲
string getmessage():返回簡短的錯誤資訊
string tostring():
返回詳細的錯誤資訊
void printstacktrace():列印
非常詳細的錯誤資訊(最詳細)
用來結合try…catch使用finally修飾的**塊,無論如何都會執行,finally**塊一般用來做收尾工作,比如釋放資源
執行時異常:runtimeexception它或者它下面的子類,編譯時期可以處理也可以不處理
編譯時異常: runtimeexception它
體系外的異常都屬於編譯時異常,編譯時異常在編譯時期必須要處理
自己寫乙個類,然後繼承自異常類中的乙個類就可以
方法直接或者間接的呼叫它本身
l 一定要有出口。沒有出口會死迴圈導致記憶體溢位
l 次數不能過多,會記憶體溢位
Python 深度遞迴異常
python超出遞迴深度時會出現異常 runtimeerror maximum recursion depth exceeded 查閱資料後發現python預設的遞迴深度是很有限的,應該是998 至於為什麼是998,自行體會 當遞迴深度超過這個值的時候,就會引發這樣的乙個異常。解決的方式是手工設定遞...
異常和異常處理
程式執行遇到兩種錯誤 1.error 錯誤 致命錯誤,無法恢復執行 2.exception 異常 通過修正,繼續執行。異常類常用方法 1.tostring 返回描述異常物件資訊字串 2.getmessage 返回描述物件詳細資訊 處理方法 1.try catch finally 1 try中包涵可能...
關於異常和異常捕獲。
異常即非正常狀態,主要包括書寫或語法上的錯誤導致直譯器無法正常執行。異常描述 importerror 匯入模組 物件失敗 indexerror 序列中沒有此索引 index keyerror 對映中沒有這個鍵 nameerror 未宣告 初始化物件 沒有屬性 syntaxerror python 語...