python3 x Day5 異常處理

2022-09-14 00:51:16 字數 1666 閱讀 3885

異常處理:

預計可能會發生的異常,明確如果發生,如何處理,不過一般不參與業務邏輯,也不要一次性捕捉全部異常,不然可能程式就不可控了。

data={}

mmm=

try: #

捕獲異常,

data["

name"]

mmm[3]

except indexerror as e: #

探索異常,如果是探索到的異常型別,則執行以下操作,程式整體不崩潰

print("

下標越界:

",e) #

可以單個捕獲

except

keyerror as e:

print("

索引錯誤:

",e)

try:

data[

"name"]

mmm[3]

except (indexerror,keyerror) as e: #

可以捕獲多個

print("

索引錯誤,下標越界:

",e)

try:

data[

"name"]

mmm[3]

except indexerror as e: #

探索異常,如果是探索到的異常型別,則執行以下操作,程式整體不崩潰

print("

下標越界:

",e) #

可以單個捕獲

except

keyerror as e:

print("

索引錯誤:

",e)

except exception as e: #

可以捕獲全部 這種一般不去直接上來就用,因為無法定位,用在最後挺好,捕獲全部未知錯誤。

print("

出錯:"

,e)else: #

這個else就是沒有異常會走這裡

print("

一切正常")

finally: #

不論有沒有錯誤,都會執行這個

print("

不論有沒有錯誤,都會執行這個")

#語法錯誤,縮排錯誤,這類導致無法編譯的異常,是無法捕獲的。

#自定義異常:

class

wangyueexception(exception):

def__init__

(self,msg):

self.message=msg

#def __str__(self): #這個只是原理描述,確實在呼叫異常時,資訊是通過__str__()方法獲取的,但不用在自定義異常時寫出來,父類都寫好了的

#return self.message

try:

print("

其他**")

raise wangyueexception("

我的異常出來了。

") #

自定義異常是無法唄python自動觸發的,因為python也不知道自己的業務邏輯,所以,需要用raise來觸發異常

except

wangyueexception as e:

print

(e)#

不要覆蓋系統預設已經有的異常型別,不然會出現無法捕獲系統自帶異常的捕獲,雖然報錯正常

Windows上python開發 5 異常處理

python的異常處理能力是很強大的,可向使用者準確反饋出錯資訊。在python中,異常也是物件,可對它進行操作。所有異常都是基類exception的成員。所有異常都從基類exception繼承,而且都在exceptions模組中定義。python自動將所有異常名稱放在內建命名空間中,所以程式不必匯...

c 學習5,處理異常

using system using system.collections.generic using system.linq using system.text namespace 異常1 catch exception ex 不要吃掉異常,一般情況下不需要處理異常,例如記憶體不足,轉換時 try...

python 下標越界 Python中異常處理

高階語言通常都配置了一套try.except.finally的錯誤處理機制。1 我們先看乙個try的機制 try res 1 0 except zerodivisionerror as e print 出錯了,除數不能為0 e 執行結果為 出錯了,除數不能為0 division by zero 當我...