python異常和斷言

2021-10-17 18:38:42 字數 1667 閱讀 4851

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

try

:print(2

/0)except zerodivisionerror:

print

('error: invalid argument.'

)

這個**處理了除數為0的異常。在**except語句中提到了zerodivisionerror異常,此外還有其它異常,詳見python文件。

如果要捕獲多個異常時,可以用元組的形式寫在同乙個exception語句裡;如果要捕獲全部的異常資訊,則可以寫成exception,如

except

(valueerror, attributeerror, keyerror)

:except exception:

except語句開始執行後,不會返回try子句執行錯誤語句後面的句子。

也可以通過raise語句丟擲自己的異常。通常,使用try-except語句呼叫函式,raise語句寫在這個函式中,如

def

func

(one)

:if one ==1:

raise exception(

'one'

)print

(one)

try:

func(2)

func(1)

except exception as err:

print(+

str(err)

)

捕獲異常時的as語句可以獲取異常資訊。

try-except語句後還可寫finally語句,無論try子句是否成功,都會執行finally語句中的內容,如

try

: a = opne(

'name.txt'

)except exception as e:

print

(e)finally

: a.close(

)

無**件是否被開啟,最終都會被關閉。問價開啟的的異常處理還可簡化為上下文管理器形式上下文管理器形式。

斷言是乙個完整性檢查,確保**沒有做什麼明顯錯誤的事情。

s =

'abc'

assert s ==

'abc'

s ='xyz'

assert s ==

'abc'

上面**希望確定字串sabc。如果檢查失敗,則丟擲異常。

在執行python時,傳入-o選項可以禁用斷言。

Python中異常和斷言

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

python基礎(十) 異常和斷言

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

python基礎 異常處理及斷言

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