python的異常學習簡總

2021-10-06 20:14:11 字數 2704 閱讀 7357

python中常見的異常型別

nameerror:嘗試訪問乙個為申明的變數。

zerodivisionerror:除數為零錯誤。

syntaxerror:直譯器語法錯誤,這是乙個唯一不在執行時發生的異常,在執行前直譯器就會顯示其錯誤。

indexerror:請求的索引超出範圍。

keyerror:請求乙個不存在的字典的關鍵字。

ioerror:輸入/輸出錯誤(io錯誤)。

attributeerror:嘗試訪問未知的物件屬性。

typeerror:型別錯誤,引數等型別不匹配。

exception:捕獲所有異常。

python檢測和處理異常

異常處理使用主要有兩個語句

try

:pass

except 錯誤型別 as e:

print

(e)pass

try:

pass

finally

:pass

注意

try中的**發生錯誤丟擲異常,except根據自己的異常型別判斷是否捕獲這個異常。乙個try可以跟多個except。和c++類似,exception異常型別可以捕獲除了sys.exit()丟擲的程式退出型別以外的任何異常型別。as e是產生乙個異常型別的物件,然後print(e)會列印出異常型別資訊。

如果try中**未發生異常,就會跳過。如果try**現異常,但是except的異常型別與異常不匹配,那麼程式就會在異常語句直接掛掉

try-finally子句,finally子句只能有乙個,也可以使用try-except-finally混合語句。finally的語句無論錯誤是否發生都會被執行。如果是混合的話finally寫在最後。

也可以指定確定的異常型別,因為一般**中不同的異常可能補救處理不同,使用try和多個except即可。

如果對於某個型別異常你不想做處理,你可以在其except**塊中寫pass即可,但是程式會報錯。

異常處理中else關鍵字

try

:pass

except typeerror:

print

("型別錯誤"

)else

:print

("else子句"

)finally

:print

("finally子句"

)

異常語句可以跨層次

下乙個簡單的**來說明

def

func

(s):

return10/

int(s)

defhelp

(s):

return func(s)*10

defmain()

:try

:help

('0'

)except exception as e:

print

(e)finally

:print

("finally"

)main(

)""" 結果:

division by zero

finally

"""

上面的**就實現了跨層次的捕獲異常,首先func將異常拋給help然後help將異常拋給main,然後main處理異常。

主動觸發異常

raise語句就是用來出動主動丟擲異常的,類似於c++的throw一樣,使用格式如下:

def

div(a,b)

:# 做a/b

if b ==0:

raise zerodivisionerror(

"division by error"

)return a / b

自定義異常型別

自己實現乙個類,然後需要繼承expection類。

class

myerror

(exception)

:def

__init__

(self,msg)

: self.mymsg = msg

# 過載print函式

def__str__

(self)

:return self.mymsg

try:

raise myerror(

"my error"

)except myerror:

print

("myerror"

)

斷言

和c中的assert一樣,如果assert子句條件不成立就會丟擲assertionerror型別的異常。否則就不做任何事。

a =

12b =

0assert b !=0,

"division by zero"

tmp = a / b

print

("end")a=

12b=

0try

:assert b !=0,

"division by zero"

tmp = a /b

except assertionerror as a:

print

(a)

第一種**程式會崩潰,並列印字串;第二種也可以直接捕獲異常。

提取碼:cpit

簡單總結,如有錯誤!請批評指導!!!

python極簡筆記 異常

異常 def exceptionfunc print 7 0 exceptionfunc 使用try except 處理異常 def sloveexecption try print 7 0 except zerodivisionerror print divide by zero sloveexe...

Python學習 異常

異常可以描述為 它是因為程式出現了錯誤而在正常控制流以外採取的行為。這個行為分為兩個階段 首先是引起異常發生錯誤,然後是採取措施處理階段。開發人員在編寫程式時,難免會遇到錯誤。開發人員在編寫程式時需要分析這些可能會造成異常的情況,從而保證程式流暢且穩定執行,而在這種情況下異常捕獲與處理就成為避免程式...

python學習筆記簡書 Python學習筆記

1.輸入 輸出 1 輸出 printf aaa printf aa a printf 100 200 100 200 結果為aaa aa a 100 200 300 輸出不輸出回車方法 print end 2 輸入 name intput printf name 結果為mike mike name ...