1.常見異常
1.synataxerror:語法錯誤
2.nameerror:試圖訪問的變數名不存在
3.indexerror:索引錯誤,使用的所以你不存在,常為索引超出序列範圍
4.keyerror:使用了對映中不存在的關鍵字(鍵)時引發的關鍵字錯誤
5.typeerror:型別錯誤,內建操作或是函式應於在錯誤型別的物件時會引發型別錯誤
6.valueerror:值錯誤,傳給物件的引數型別不正確,例如給int()函式傳入了字串資料型別
7.attributeerror:屬性錯誤,特性引用和賦值失敗時會引發屬性錯誤
8.ioerror:輸入輸出錯誤
2.異常列印
import sys
import traceback
try:
1/0except exception as e:
# 訪問異常的錯誤編號和詳細資訊
print(e.args)
print(str(e))
print(repr(e))
# 列印資訊
exc_type, exc_value, exc_traceback = sys.exc_info()
print('e.message:\t', exc_value)
# 通過trace列印
print 'traceback.print_exc():'; traceback.print_exc()
print 'traceback.format_exc():\n%s' % traceback.format_exc()
args:返回異常的錯誤編號和描述字串;3.raise用法str(e):返回異常資訊,但不包括異常資訊的型別;
repr(e):返回較全的異常資訊,包括異常資訊的型別。
sys.exc_info() 方法可以獲取正在處理的異常資訊,即 except 子句正在處理的異常,其返回值為乙個tuple型別的三元組(exc_type, exc_value, exc_traceback),其中,exc_type為獲取到的異常型別;exc_value為該異常型別物件;exc_traceback為乙個 traceback 物件,包含異常最初發生的呼叫棧資訊。
使用traceback.print_exc()列印異常資訊到標準錯誤,或者使用traceback.format_exc()將同樣的輸出獲取為字串
python 允許我們在程式中手動設定異常,使用 raise 語句即可。
raise [exceptionname [(reason)]]
用 括起來的為可選引數,其作用是指定丟擲的異常名稱,以及異常資訊的相關描述。如果可選引數全部省略,則 raise 會把當前錯誤原樣丟擲;如果僅省略 (reason),則在丟擲異常時,將不附帶任何的異常描述資訊。
raise 語句有如下三種常用的用法:
raise:單獨乙個 raise。該語句引發當前上下文中捕獲的異常(比如在 except 塊中),或缺省引發 runtimeerror 異常。
raise 異常類名稱:raise 後帶乙個異常類名稱,表示引發執行型別的異常。
raise 異常類名稱(描述資訊):在引發指定型別的異常的同時,附帶異常的描述資訊。
相關鏈結 4 2 Python基礎語法
usr bin python3 str input 請輸入 print 你輸入的內容是 str 請輸入 hello python 你輸入的內容是 hello python usr bin python3 x a y b 換行輸出 print x print y print 不換行輸出 print x...
python異常捕獲 如何捕獲Python中的異常
python 提供了try except語句捕獲並處理異常,該異常處理語句的基本語法結構如下 try 可能產生異常的 塊 except error1,error2,as e 處理異常的 塊1 except error3,error4,as e 處理異常的 塊2該格式中,括起來的部分可以使用,也可以省...
python異常捕獲
python的異常處理如c c 的結構一樣。python用try.except.c c 則用try.catch.並不難理解。在對具體錯誤的獲取則有點不同,主要是語法的差異上。c 在catch後可生成相應乙個異常的類,然後可通過類物件獲取相關的錯誤資訊。而python則不同,它在獲取錯誤資訊有點奇怪,...