python基礎(十) 異常和斷言

2022-08-27 19:33:10 字數 2094 閱讀 4038

異常主要分為四大類,所有異常都是類的形式,均繼承了baseexception這個類。其中systemexit為python的退出異常,keyboardinterrupt為鍵盤的中斷異常,generatorexit為生成器的退出異常。最後一種也是我們通常會遇到的異常exception普通異常。普通異常包括我們平時會經常遇到的異常型別,如下圖所示。

當程式執行過程中發生錯誤程式就會終止,為了避免這一情況我們需要捕獲異常。

try/except

捕獲由python或你引起的異常並恢復

try/finally

無論異常是否發生,執行清理行為

在目前的python版本中except和finally可以同時出現,除此之外還有else語句,其後的語句會在程式未發生異常的時候執行,而finally後的語句無論是否發生異常都會執行。

try

:

print(aaa)#

錯誤**

except

exception as e:

print("

錯誤資訊:

",e)

>>>錯誤資訊: name '

aaa'

isnot defined

try

:

#print(aaa)#錯誤**

print('

aaa')#

正確**

except

exception as e:

print("

錯誤資訊:

",e)

else

:

print("

else執行!!")

>>>aaa

else執行!!

try

:

print(aaa)#

錯誤**

#print('aaa')#正確**

except

exception as e:

print("

錯誤資訊:

",e)

finally

:

print("

finally執行!!")

>>>錯誤資訊: name '

aaa'

isnot

defined

finally執行!!

try:

#print(aaa)#錯誤**

print('

aaa')#

正確**

except

exception as e:

print("

錯誤資訊:

",e)

finally

:

print("

finally執行!!")

>>>aaa

finally執行!!

raise語句會手動在**中觸發異常。其功能主要用於程式的除錯。

raise

nameerror

>>>traceback (most recent call last):

file

"/home/pyvip/joepy/home/pyvip/joepy/test.py

", line 58, in

raise

nameerror

nameerror

assert語句會有條件的在程式**中觸發異常。assert  條件表示式,當條件表示式返回值為true時,不報錯。當條件表示式返回值為false時,報錯。報錯型別為assertionerror。

assert 1>2

>>>traceback (most recent call last):

file

"/home/pyvip/joepy/home/pyvip/joepy/test.py

", line 59, in

assert 1>2assertionerror

python異常和斷言

在寫程式時可能會遇到錯誤,整個程式就會崩潰,但我們希望程式能檢測錯誤並繼續執行。這可以使用try except語句來處理,把可能出錯的語句放在try子句中,如果發生錯誤,則轉到except子句。try print 2 0 except zerodivisionerror print error in...

Python中異常和斷言

異常的型別主要有 exception 所有異常的基類 attributeerror 不存在屬性 ioerror 輸入或輸出異常 importerror 無法引入模組或包。一般是路徑問題或模組名稱有誤 indentationerror 語法錯誤 syntaxerror子類 一般是 縮排錯誤 keyer...

python基礎 異常處理及斷言

異常有很多種型別,常見的由語法錯誤 syntaxerror 型別錯誤 typeerror 名字錯誤 nameerror 等等,但我們要知道的是異常本身就是乙個類的例項,所有的異常都繼承於這個baseexception,在這個父類上又下分了下面四大類 systemexit python退出異常 key...