教你使用Python遇到的異常的處理方式!

2021-10-09 22:13:20 字數 2312 閱讀 6072

1、區分錯誤與異常

兩種錯誤(都必須改正):語法錯誤(**不規範,格式不對或缺少符號)、邏輯錯誤(邏輯不通)

異常:程式執行時發生錯誤的訊號

2、異常處理與注意事項

異常處理:程式設計師特意去捕捉異常,如果捕捉成功,就進入另外一段你定義的邏輯裡去執行,使程式不會崩潰

注意:異常處理的邏輯應該是與程式的主邏輯的分離開的;根本不會有人去用執行到一半就崩潰的軟體,所以我們必須提供一種異常處理機制來增強我們程式的健壯性和容錯性

1、常見異常

attributeerror試圖訪問乙個物件沒有的屬性,比如test.a,但是test沒有屬性a

ioerror輸入/輸出異常;基本上就是無法開啟檔案

importerror無法引入模組或包;基本上就是路徑問題或名稱錯誤

indentationerror語法錯誤(的子類) ;**沒有正確縮排或對齊

indexerror下標索引超出序列邊界,比如當a只有三個元素,卻試圖訪問a[5]

keyerror鍵異常,試圖訪問字典裡不存在的鍵

keyboardinterruptctrl+c被按下

nameerror使用乙個還未被賦予物件的變數

syntaxerrorpython**非法,**不能編譯(基本上就是語法錯誤)

typeerror傳入物件型別與要求的不符合

unboundlocalerror試圖訪問乙個還未被設定的區域性變數,基本上是由於另有乙個同名的全域性變數,導致你以為正在訪問它

valueerror值異常,傳入乙個呼叫者不期望的值,即使值的型別是正確的

2、其他異常

arithmeticerror  assertionerror  attributeerror  baseexception  buffererror  byteswarning  deprecationwarning  environmenterror  eoferror  exception  floatingpointerror  futurewarning  generatorexit  importerror  importwarning  indentationerror  indexerror  ioerror  keyboardinterrupt  keyerror  lookuperror  memoryerror  nameerror  notimplementederror  oserror  overflowerror  pendingdeprecationwarning  referenceerror  runtimeerror  runtimewarning  standarderror  stopiteration  syntaxerror  syntaxwarning  systemerror  systemexit  taberror  typeerror  unboundlocalerror  unicodedecodeerror  unicodeencodeerror  unicodeerror  unicodetranslateerror  unicodewarning  userwarning  valueerror  warning  zerodivisionerror
這些異常都比較少見,所以也沒有必要全部列出來是哪方面的異常,太多了也記不住,所以可以遇到再去搜尋這些少見的異常的解決方案

1、if判斷式

執行結果:

if判斷式的缺點:

只能針對某一段**,對於不同的**段的相同錯誤型別需需要寫重複的if來進行處理,顯得非常贅餘,可讀性極其差

2、try … except …異常處理

執行結果:

3、主動異常

執行結果:

4、斷言

執行結果:

教你使用Python遇到的異常的處理方式!

1 區分錯誤與異常 兩種錯誤 都必須改正 語法錯誤 不規範,格式不對或缺少符號 邏輯錯誤 邏輯不通 異常 程式執行時發生錯誤的訊號 2 異常處理與注意事項 異常處理 程式設計師特意去捕捉異常,如果捕捉成功,就進入另外一段你定義的邏輯裡去執行,使程式不會崩潰 注意 異常處理的邏輯應該是與程式的主邏輯的...

python 遇到的異常

windowserror error 3 報錯 報錯原因 路徑不對,沒有那個目錄,所以報錯 解決 只需要修改對路徑就好了 syntaxerror eol while scanning string literal 報錯原因 string 的結尾有問題 解決 檢查一下 或 是否沒有對應,缺少了其中乙個...

使用Twitter異常檢測框架遇到的坑

在github上搜尋 anomaly detection twitter的異常檢測框架 基於r語言 高居榜首,可見效果應該不錯 但是活躍度並不高,3 4年沒人維護了 因此在使用時難免會遇到一些坑,整個使用方式如下 紅色部分,就是直接在rstudio中執行時,可能有異常的地方 install.pack...