exception 捕獲所有錯誤
nameerror 變數沒有被定義
syntaxerror 語法錯誤
indexerror list超出索引範圍
keyerror 字典超出索引範圍
valueerror 值錯誤
attributeerror 屬性錯誤
菜鳥:
官網:traceback 會追蹤異常,一直到最終錯誤發生的地方。下面顯示了完整的呼叫棧。顯示了錯誤產生於那個檔案的第幾行,最後面會顯示程式產生的是哪一種錯誤,已經錯誤最開始發生的地方。
語法結構:
try
:語#執行別的**
except:語
#如果在try部份引發了'valueerror'異常
except
:語#如果引發了'zerodivisionerror'異常,獲得附加的資料
else
:語#如果沒有異常發生
finally:
語#無論異常是否發生都執行
例項捕獲多個異常
try
: year =
int(
input
('input year:'))
except
(keyerror,valueerror,attributeerror)
:# except (keyerror,valueerror,attributeerror) 捕獲多個異常
print
('年份要輸入數字'
)#捕獲錯誤,輸出自定義提示
把異常資訊賦值給變數
try
:print(1
/0)except zerodivisionerror as e:
#(把異常資訊賦值給變數,然後輸出,除錯用)
print
('0不能做除數 %s'
% e )
#輸出結果
0不能做除數 division by zero
exception捕獲所有錯誤
try
:print(1
/0)except exception as e:
print
('%s'
% e)
finally使用try
: a =
open
('name.txt'
)except exception as e :
print
(e)finally
:#用來關閉檔案
a.close(
)
我們可以使用raise語句自己觸發異常
raise語法格式如下:
raise [exception [, args [, traceback]]]語句中 exception 是異常的型別(例如,nameerror)引數標準異常中任一種,args 是自已提供的異常引數。
最後乙個引數是可選的(在實踐中很少使用),如果存在,是跟蹤異常物件。
重新定義錯誤型別
try:10
/0except zerodivisionerror:
raise valueerror(
'input error!'
)
raise語句如果不帶引數,就會把當前錯誤原樣丟擲。
1、所有的異常都繼承於baseexception;廖雪峰官方**:2、發生異常後,後面的語句將不再執行;
3、exception 會博會所有異常;
4、try:… except 可以使用異常巢狀;
5、程式執行中,當前面的異常**獲後,後面的異常將不會**獲。
Python異常的處理和檢測
在python程式執行過程中發生的異常可以通過try語句來檢測,可以把需要檢測的語句放置在try塊裡面,try塊裡面的語句發生的異常都會被try語句檢測到,並丟擲異常給python直譯器,python直譯器會尋找能處理這一異常的 並把當前異常交給其處理。這一過程稱為捕獲異常。如果python直譯器找...
Python異常和異常處理
python異常和異常處理 2017年12月20日 22 17 08 megustas jjc 閱讀數 114 標籤 python 異常處理 更多 個人分類 python while true filename raw input please input a file to open try da...
Python異常處理和異常型別
try some functions.except exception,e print e try some functions.except exception as e print e 注意這裡exception,e變成了exception as e 1.nameerror 嘗試訪問乙個未申明的...