42 python異常捕獲

2022-09-21 06:24:07 字數 1665 閱讀 2042

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:返回異常的錯誤編號和描述字串;

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()將同樣的輸出獲取為字串

3.raise用法

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則不同,它在獲取錯誤資訊有點奇怪,...