Python基礎 異常處理 10

2021-10-05 17:26:27 字數 2162 閱讀 1939

幾個注意:

單異常捕獲:

#將可能會出現異常的**放在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 塊結束後執...