1. python中的異常
nameerror: 嘗試訪問乙個未申明的變數
zerodivisionerror:
除數為零
syntaxerror: 直譯器語法錯誤
indexerror: 請求的索引超出序列範圍
keyerror:
請求乙個不存在的字典關鍵字
ioerror: 輸入/輸出錯誤
attributeerror: 嘗試訪問未知的物件屬性
valueerror:
值錯誤typeerror: 型別錯誤
systemexit: 當前python應用程式需要退出
keyboardinterupt:
使用者按下ctrl+c關閉python
2. 檢測和處理異常
異常可以通過try語句來檢測
try語句有兩種主要形式:try-except和try-finally
乙個try語句可以對應乙個或多個except子句,但只能對應乙個finally子句,或是乙個try-except-finally復合語句
3. try-except語句
try:
try_suite
except exception[, reason]:
except_suite
在程式執行時,先嘗試執行try塊裡的所有**,如果**塊完成後沒有異常發生,執行流就會忽略except語句繼續執行。而當except語句所指定的異常發生後,我們儲存了錯誤原因,控制流立即跳轉到對應的處理器。
4. 帶有多個except的try語句
首先嘗試執行try子句,如果沒有錯誤,忽略所有的except從句繼續執行。如果發生異常將在except子句中查詢匹配的異常,如果找到對應的處理器,執行流跳轉到對應的except從句執行。
5.處理多個異常的except語句
except (exception1, exception2) [, reason]:
suit_for_exception1_and
exception2
except語句可以處理任意多個異常,前提是它們被放入乙個元組裡。
捕獲所有異常可以使用:
try:
:except baseexception, e:
#handle all errors
try:
:except exception, e:
#handle real
errors
空except子句處理所有異常已經不推薦使用。
6. else子句
在try範圍中沒有異常被檢測到時,執行else子句。
7. finally子句
finally子句無論異常是否發生,是否捕捉都會執行的一段**。
無論什麼語法,至少要有乙個except子句,而else和finally都是可選的。
python學習筆記系列 (六)錯誤和異常
python至少有2類不同的錯誤 語法錯誤 syntax errors 和異常 exceptions 8.1 語法錯誤 這個單詞應該還是很有必要認識的,呵呵,語法錯誤,也叫解析錯誤,是我們最不願意發生的錯誤,直接拿官網的例子 while true print hello world file lin...
python錯誤和異常
1 語法錯誤 syntax errors 語法錯誤,也就是解析時錯誤。當我們寫出不符合python語法 時,在解析時會報syntaxerror,並且會顯示出錯的那一行,並用小箭頭知名指明最早探測到錯誤的位置。如 while ture file line 1 while ture syntaxerro...
Python 錯誤和異常
for i in range 10 print i for i in range 10 syntaxerror invalid syntax python的語法分析器完成,檢測到錯誤所在的檔案和行號,以向上箭頭標記錯誤位置,最後顯示錯誤型別 當程式檢測到乙個錯誤,直譯器就無法繼續執行下去,丟擲異常,...