異??偨Y

異常總結

異常:就是不正常的情況,程序開發過程中錯誤和BUG都是補充正常的情況。

不正常的情況有自己寫錯代碼,導致程序運行不起來,或者進行某種操作的時候,不合適的數據引起程序崩潰,比如需要用戶輸入數字的時候,用戶輸入了字符串,在進行類型轉換的時候就會出現錯誤,導致程序崩潰。

異常發生的后果就是程序崩潰。處理異常,在運行的程序過程中,由于用戶的誤操作或者不合適的數據導致程序崩潰,讓代碼自己處理并保證程序的正常執行,而不至于因為錯誤導致程序的崩潰,提高代碼的健壯性!

處理異常(容錯):包容出現的不正常的錯誤,保證程序的正常運行。處理異常的方式有:try except:異常捕獲處理assertions:斷言處理

try:

可能出現異常的代碼

except:

一旦出現異常執行的代碼

else:

沒有異常執行的代碼

finally:

不論是否有異常都會執行的代碼

異常處理的步驟:讓錯誤充分的暴露出來

定位異常:定位錯誤出現的位置

處理異常:try包含,except處理

基本異常處理:try-except直接處理異?!究梢蕴幚砣魏萎惓?,不能定位具體是什么異?!縯ry-except(異常信息)【可以處理指定的異?!?/p>

常見的異常

所有異常的超類:BaseException

標準異常的超類:Exception(BaseException)

程序執行過程中經常看到的異常:

BaseException所有異常的基類

SystemExit解釋器請求退出

KeyboardInterrupt用戶中斷執行(通常是輸入^C)

Exception常規錯誤的基類

StopIteration迭代器沒有更多的值

GeneratorExit生成器(generator)發生異常來通知退出

StandardError所有的內建標準異常的基類

ArithmeticError所有數值計算錯誤的基類

FloatingPointError浮點計算錯誤

OverflowError數值運算超出最大限制

ZeroDivisionError除(或取模)零(所有數據類型)

AssertionError斷言語句失敗

AttributeError對象沒有這個屬性

EOFError沒有內建輸入,到達EOF標記

EnvironmentError操作系統錯誤的基類

IOError輸入/輸出操作失敗

OSError操作系統錯誤

WindowsError系統調用失敗

ImportError導入模塊/對象失敗

LookupError無效數據查詢的基類

IndexError序列中沒有此索引(index)

KeyError映射中沒有這個鍵

MemoryError內存溢出錯誤(對于Python解釋器不是致命的)

NameError未聲明/初始化對象(沒有屬性)

UnboundLocalError訪問未初始化的本地變量

ReferenceError弱引用(Weak reference)試圖訪問已經垃圾回收了的對象

RuntimeError一般的運行時錯誤

NotImplementedError尚未實現的方法

SyntaxErrorPython語法錯誤

IndentationError縮進錯誤

TabErrorTab和空格混用

SystemError一般的解釋器系統錯誤

TypeError對類型無效的操作

ValueError傳入無效的參數

UnicodeErrorUnicode相關的錯誤

UnicodeDecodeErrorUnicode解碼時的錯誤

UnicodeEncodeErrorUnicode編碼時錯誤

UnicodeTranslateErrorUnicode轉換時錯誤

Warning警告的基類

DeprecationWarning關于被棄用的特征的警告

FutureWarning關于構造將來語義會有改變的警告

OverflowWarning舊的關于自動提升為長整型(long)的警告

PendingDeprecationWarning關于特性將會被廢棄的警告

RuntimeWarning可疑的運行時行為(runtime behavior)的警告

SyntaxWarning可疑的語法的警告UserWarning用戶代碼生成的警告

通常查看異常信息,就需要打印異常信息,將異常信息賦值給一個變量,打印該變量即可系統提供的異常信息--晦澀難懂 ??系統提供的異常信息--非常有限

我們可以自定義異常

異??梢钥闯梢粋€對象

自定義的異常可以看成類型

主動拋出異常,在開發過程中,主動地出現一種錯誤,將錯誤拋給程序,告訴程序在這里出錯,通過raise關鍵字來拋出異常

自定義異常,就是專門為了拋出異常,拋出錯誤,警告這里出現了問題

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 異??偨Y 異常:就是不正常的情況,程序開發過程中錯誤和BUG都是補充正常的情況。 不正常的情況有自己寫錯代碼,導致...
    Newthan閱讀 276評論 0 0
  • 本節內容如下: 什么是異常,對異常的解釋和描述,口語描述和專業術語的聯系 代碼中出現錯誤的處理手段 異常處理方式什...
    大牧莫邪閱讀 757評論 0 0
  • Python異常處理 異常概念: 異常:就是不正常的情況,程序開發過程中錯誤和BUG都是補充正常的情況 異常發生的...
    youngkun閱讀 943評論 0 4
  • 今天看到一張圖,描述了雙魚座的性格,我覺得很貼切我,本來還覺得超級神奇有趣。 但認真一想:難道所有的雙魚座都是這種...
    顏族長閱讀 350評論 0 1
  • 為什么要使用模塊化? 解決命名沖突 依賴管理 提高代碼可讀性 代碼解耦,提高復用性 CMD、AMD、CommonJ...
    書中有涼氣閱讀 600評論 0 50