幾個注意:
單異常捕獲:
#將可能會出現異常的**放在try塊裡面
#當出現異常後,except會捕獲異常,並執行except塊中的操作
#except塊捕獲的異常是必須是except後面寫的異常或者其子類異常
#如果try塊的異常不是except塊後指定的異常,則不會**獲
try:
print
(a)except nameerror:
print
('名字異常'
)
多異常捕獲:#多個異常捕獲
try:
print
(a) i=1/
0except
(nameerror,zerodivisionerror)
as ex:
#將捕獲的異常物件賦值給ex
print
('名字異常/除零異常'
)print
(ex)
try
: reg(
'zs'
,'ss'
)except passwordexception as ex:
print
(ex)
except exception as ex:
print
('未知異常'
)
try-except-finally塊#try-except-finally塊
#不管發生不發生異常,finally塊的內容都會最後執行
try:
f=open
('text.txt'
,'r'
) f.write(
'hh\n'
)except exception as ex:
#exception時所有異常的父類,會一次性丟擲所有異常
print
(ex)
finally
:print
('finally'
) f.close(
)
try-except-else-finally塊:try
: f=
open
('text.txt'
,'w'
) f.write(
'hh\n'
)except exception as ex:
print
(ex)
else
:#沒有異常時執行的**
print
('else'
)finally
:print
('finally'
)if f:
f.close(
)#當檔案存在的時候才進行關閉
自定義異常:#自定義異常
class
passwordexception
(exception)
:def
__init__
(self,pw,min_length)
: self.passwprd=pw
self.min_length=min_length
def__str__
(self)
:return
'%s的密碼錯誤,密碼最小長度為%s'
%(self.passwprd,self.min_length)
defreg
(username,password):if
len(password)
<6:
#丟擲異常
raise passwordexception(password,6)
#當有多個except塊時,會按照順序判斷丟擲的異常是否是該異常或者異常子類
#如果滿足則進入except塊,不在進入其他快
try:
reg(
'zs'
,'ss'
)except passwordexception as ex:
print
(ex)
except exception as ex:
print
('未知異常'
)
python入門10異常處理
1 概念 當程式遇到問題時不讓程式結束,而越過錯誤繼續向下執行 2 錯誤處理語句 try except else 格式 try 語句texcept 錯誤碼 as e 語句1except 錯誤碼 as e 語句2else 語句e 注意 else語句可有可無 邏輯 檢測try語句塊裡面的錯誤,讓exce...
python基礎 異常處理
1 0 name 2 3 3 k try print 1111 1 0 print 2222 name 2 3 3 k ret int input number print ret except valueerror print 輸入的資料型別有誤 except exception print 你錯...
python基礎 異常處理
異常是程式執行過程 現的非正常流程現象。異常是無法避免的,只能先預估出可能出現的異常現象,並提供對應的處理機制,在異常出現後保障程式不被中斷執行。格式一 常用 try 可能引發異常現象的 except 出現異常現象的處理 格式二 不常用 try 可能引發異常現象的 finally try 塊結束後執...