異常 | 描述 |
NameError | 嘗試訪問一個沒有申明的變量 |
ZeroDivisionError | 除數為0 |
SyntaxError | 語法錯誤 |
IndexError | 索引超出序列范圍 |
KeyError | 請求一個不存在的字典關鍵字 |
IOError | 輸入輸出錯誤(比如你要讀的文件不存在) |
AttributeError | 嘗試訪問未知的對象屬性 |
ValueError | 傳給函數的參數類型不正確,比如給int()函數傳入字符串形 |
2.捕獲異常
Python完整的捕獲異常的語句有點像:
代碼如下:
try:
try_suite
except Exception1,Exception2,...,Argument:
exception_suite
...... #other exception block
else:
no_exceptions_detected_suite
finally:
always_execute_suite
額...是不是很復雜?當然,當我們要捕獲異常的時候,并不是必須要按照上面那種格式完全寫下來,我們可以丟掉else語句,或者finally語句;甚至不要exception語句,而保留finally語句。額,暈了?好吧,下面,我們就來一一說明啦。
2.1.try...except...語句
try_suite不消我說大家也知道,是我們需要進行捕獲異常的代碼。而except語句是關鍵,我們try捕獲了代碼段try_suite里的異常后,將交給except來處理。
try...except語句最簡單的形式如下:
代碼如下:
try:
try_suite
except:
exception block
上面except子句不跟任何異常和異常參數,所以無論try捕獲了任何異常,都將交給except子句的exception block來處理。如果我們要處理特定的異常,比如說,我們只想處理除零異常,如果其他異常出現,就讓其拋出不做處理,該怎么辦呢?這個時候,我們就要給except子句傳入異常參數啦!那個ExceptionN就是我們要給except子句的異常類(請參考異常類那個表格),表示如果捕獲到這類異常,就交給這個except子句來處理。比如:
新聞熱點
疑難解答