Python的except用來捕獲所有異常, 因爲Python裏面的每次錯誤都會拋出 一個異常,所以每個程序的錯誤都被當作一個運行時錯誤。
以下是使用except的一個例子:
try:
foo = opne(”file”) #open被錯寫爲opne
except:
sys.exit(”could not open file!”)
因爲這個錯誤是由於open被拼寫成opne而造成的,然後被except捕獲,所以debug程序的時候很容易不知道出了什麼問題。
下面這個例子更好點:
try:
foo = opne(”file”) # 這時候except只捕獲IOError
except IOError:
sys.exit(”could not open file”)
except: #捕獲所有異常
except: <異常名>: #捕獲指定異常
except:<異常名1,異常名2):捕獲異常1或者異常2
except:<異常名>,<數據>:捕獲指定異常及其附加的數據
except:<異常名1,異常名2>:<數據>:捕獲異常名1或者異常名2,及附加的數據庫
常用異常名:
異常名 描述
AttributeError 調用不存在的方法引發的異常
EOFError 遇到文件末尾引發的異常
ImportError 導入模塊出錯引發的異常
IndexError 列表越界引發的異常
IOError I/O操作引發的異常,如打開文件出錯等
KeyError 使用字典中不存在的關鍵字引發的異常
NameError 使用不存在的變量名引發的異常
TabError 語句塊縮進不正確引發的異常
ValueError 搜索列表中不存在的值引發的異常
ZeroDivisionError 除數爲零引發的異常
使用raise 引發異常幾種方式:
raise 異常名
raise 異常名,附加數據
raise 類名
assert 簡化了raise語句:
需要注意的是,assert語句一般用於開發時對程序條件的驗證,只有當內置_debug_爲True時,assert語句纔有效。當Python腳本以-O選項編譯成爲字節碼文件時,assert 語句將被移除。
但與raise語句不同的是,assert語句是在條件測試爲假時,才引發異常。assert語言的一般形式如下:
assert <條件測試>,<異常附加數據> #其中異常附加數據是可選的
python編程_Python異常機制try: 代碼段 except 異常類型,e: 異常處理代碼段,如果不知道異常類型,可以使用try: 代碼段 except Except,e:異常處理代碼段;Except是通用異常類型