Python程式設計:exception異常處理
阿新 • • 發佈:2019-02-08
異常處理
d= []
try:
d.append("1")
except IndexError as e:
print("索引越界",e)
except Exception as e: #抓住所有錯誤,一般放在最後
print("未知錯誤",e)
else:
print("一切正常")
finally:
print("不管有沒有錯,都執行")
"""常見異常
AttributeError 試圖訪問一個物件沒有的樹形,比如foo.x,但是foo沒有屬性x
IOError 輸入/輸出異常;基本上是無法開啟檔案
ImportError 無法引入模組或包;基本上是路徑問題或名稱錯誤
IndentationError 語法錯誤(的子類) ;程式碼沒有正確對齊
IndexError 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5]
KeyError 試圖訪問字典裡不存在的鍵
KeyboardInterrupt Ctrl+C被按下
NameError 使用一個還未被賦予物件的變數
SyntaxError Python程式碼非法,程式碼不能編譯(個人認為這是語法錯誤,寫錯了)
TypeError 傳入物件型別與要求的不符合
UnboundLocalError 試圖訪問一個還未被設定的區域性變數,基本上是由於另有一個同名的全域性變數,
導致你以為正在訪問它
ValueError 傳入一個呼叫者不期望的值,即使值的型別是正確的
"""
自定義異常
class MyExcept(Exception):
def __init__(self, msg):
self.message = msg
try:
raise MyExcept("自定義的異常") # 丟擲異常
except MyExcept as e:
print(e)