11、Python異常處理

Python異常處理python


異常拋出機制,爲程序開發人員提供了一種在運行時發現錯誤,進行回覆處理,而後繼續執行的能力數據庫


#!/usr/bin/pythonide

try:函數

    open('abc.txt')spa

except IOError,msg:對象

    pass索引



拋出機制:開發

若是在運行時發生異常的話,解釋器會查找相應的處理語句(稱爲handler)it

要是在當前函數力沒有找到的話,它會將異常傳遞給上層的調用函數,看看那裏能不能處理io

若是在最外層(全局「main「)仍是沒有找到的話,解釋器就會退出,同時打印出traceback以便讓用戶找出錯誤產生的緣由



try finally字句用來表述這樣的狀況:咱們不關心捕抓到是什麼錯誤,不管錯誤是否是發生,這些代碼「必須」運行,好比文件關閉,釋放鎖,把數據庫連接返還給鏈接池

好比:

try:

    f = open('unifle.py','r')

except Exception,e:

    print False,str(e)

finally:

    print "exec finally"


拋出異常:raise

if 'a' > 5:

    raise TypeError("Error:'a' must be integer")

常見的python異常:


AssertionError             # assert語句失敗


AttributeError              # 試圖讓問一個對象沒有的屬性


IOError                       # 輸入輸出異常,基本是沒法打開文件


ImportError                # 沒法引入模塊或者包,基本是路徑問題   


IndentationError        # 語法錯誤,代碼沒有正確的對齊


IndexError                 # 下標索引超出序列邊界


KeyError                   # 試圖訪問你字典力不存在的鍵


KeyboardInterrupt    # Ctrl+c被按下


NameError               # 使用一個還沒賦予對象的變量


SyntaxError             # Python代碼邏輯語法出錯,不能執行 


TypeError               # 傳入的對象類型與要求不符


UnboundLocalError  # 試圖訪問一個還未設置的全局變量,基本上是因爲另有一個同名的全局變量,致使你覺得在訪問


ValueError             # 傳入一個不被指望的值,即便類型正確

相關文章
相關標籤/搜索