異常處理:
預計可能會發生的異常,明確如果發生,如何處理,不過一般不參與業務邏輯,也不要一次性捕捉全部異常,不然可能程式就不可控了。
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:
(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 當我...