1. 程式人生 > >Python程式設計:exception異常處理

Python程式設計:exception異常處理

異常處理

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)