標籤:long 解碼 cal 異常 interrupt ted import 中斷 over
程式運行過程中出現報錯腫麼辦?第一想法就是找問題的源頭,怎麼找呢?這時候就要用到異常捕獲了,python和其他語言一樣也有一些內建的異常類供程式員來調用,以此來定位程式的問題。以下就是常見的異常
| 異常名稱 |
描述 |
| BaseException |
所有異常的基類 |
| SystemExit |
解譯器請求退出 |
| KeyboardInterrupt |
使用者中斷執行(通常是輸入^C) |
| Exception |
常規錯誤的基類 |
| StopIteration |
迭代器沒有更多的值 |
| GeneratorExit |
產生器(generator)發生異常來通知退出 |
| StandardError |
所有的內建標準異常的基類 |
| ArithmeticError |
所有數值計算錯誤的基類 |
| FloatingPointError |
浮點計算錯誤 |
| OverflowError |
數值運算超出最大限制 |
| ZeroDivisionError |
除(或模數)零 (所有資料類型) |
| AssertionError |
Assert 陳述式失敗 |
| AttributeError |
對象沒有這個屬性 |
| EOFError |
沒有內建輸入,到達EOF 標記 |
| EnvironmentError |
作業系統錯誤的基類 |
| IOError |
輸入/輸出操作失敗 |
| OSError |
作業系統錯誤 |
| WindowsError |
系統調用失敗 |
| ImportError |
匯入模組/對象失敗 |
| LookupError |
無效資料查詢的基類 |
| IndexError |
序列中沒有此索引(index) |
| KeyError |
映射中沒有這個鍵 |
| MemoryError |
記憶體溢出錯誤(對於Python 解譯器不是致命的) |
| NameError |
未聲明/初始化對象 (沒有屬性) |
| UnboundLocalError |
訪問未初始化的本地變數 |
| ReferenceError |
弱引用(Weak reference)試圖訪問已經記憶體回收了的對象 |
| RuntimeError |
一般的執行階段錯誤 |
| NotImplementedError |
尚未實現的方法 |
| SyntaxError |
Python 語法錯誤 |
| IndentationError |
縮排錯誤 |
| TabError |
Tab 和空格混用 |
| SystemError |
一般的解譯器系統錯誤 |
| TypeError |
對類型無效的操作 |
| ValueError |
傳入無效的參數 |
| UnicodeError |
Unicode 相關的錯誤 |
| UnicodeDecodeError |
Unicode 解碼時的錯誤 |
| UnicodeEncodeError |
Unicode 編碼時錯誤 |
| UnicodeTranslateError |
Unicode 轉換時錯誤 |
| Warning |
警告的基類 |
| DeprecationWarning |
關於被棄用的特徵的警告 |
| FutureWarning |
關於構造將來語義會有改變的警告 |
| OverflowWarning |
舊的關於自動提升為長整型(long)的警告 |
| PendingDeprecationWarning |
關於特性將會被廢棄的警告 |
| RuntimeWarning |
可疑的運行時行為(runtime behavior)的警告 |
| SyntaxWarning |
可疑的文法的警告 |
| UserWarning |
使用者代碼產生的警告 |
python的異常捕獲和Java不同, Java是try catch finally ,python是 try except 、try finally 、raise(觸發自訂的異常)。
try except 文法格式
try:<語句> #運行別的代碼except <名字>:<語句> #如果在try部份引發了‘name‘異常except <名字>,<資料>:<語句> #如果引發了‘name‘異常,獲得附加的資料else:<語句> #如果沒有異常發生
python異常處理