1. 程式人生 > 其它 >20201210_121_常見異常彙總和說明

20201210_121_常見異常彙總和說明

技術標籤:學習筆記_Python程式設計基礎_Pycharm版

文章目錄

return 語句和異常處理問題

由於 return 有兩種作用:結束方法執行、返回值。我們一般不把 return 放到異常處理結構中,而是放到方法最後。

【例1.1】異常結構中return的使用方式

def test01():
    print('step1')
    try:
        x = 3 / 0
        # return 'a'
    except:
        print('step2')
        print
('異常:0不能作為除數') # return 'b' finally: print('step3') # return 'c' print('step4') return 'd' # 老師:一般不要把return語句放到try、except、else、finally塊中,會發生一些意想不到的錯誤。建議放到最後。 print(test01())

執行結果:
在這裡插入圖片描述

【例1.2】異常結構中return的使用方式
return不在最後,所以執行到return本來程式執行要終止,但是還是會把finally塊的程式碼執行完,之後就不執行了。

def test01():
    print('step1')
    try:
        x = 3 / 0
        # return 'a'
    except:
        print('step2')
        print('異常:0不能作為除數')
        return 'b'
    finally:
        print('step3')
        # return 'c'

    print('step4')
    # return 'd'  # 一般不要把return語句放到try、except、else、finally塊中,會發生一些意想不到的錯誤。建議放到最後。
print(test01())

執行結果:
在這裡插入圖片描述

常見異常的解決

Python 中的異常都派生自 BaseException 類,本課時我們列舉一些常見的異常,方便初學者掌握。

1.SyntaxError:語法錯誤
在這裡插入圖片描述
2.NameError:嘗試訪問一個沒有申明的變數
在這裡插入圖片描述
3.ZeroDivisionError:除數為 0 錯誤(零除錯誤)
在這裡插入圖片描述
4.ValueError:數值錯誤
4.1
在這裡插入圖片描述
4.2
在這裡插入圖片描述
5.TypeError:型別錯誤
在這裡插入圖片描述
6.AttributeError:訪問了物件不存在的屬性

a = 1
a.kk()

執行報錯內容:
在這裡插入圖片描述
7.IndexError:訪問的索引超出了範圍

a = [1, 2, 3]
a[5]

執行報錯內容:
在這裡插入圖片描述
8.KeyError:字典的關鍵字不存在

a = {'name': '李明', 'age': 18, 'salary': 8000}
a['sex']

執行報錯內容:
在這裡插入圖片描述

常見異常彙總

按字母順序排列

異常名稱說明
ArithmeticError所有數值計算錯誤的基類
AssertionError斷言語句失敗
AttributeError物件沒有這個屬性
BaseException所有異常的基類
DeprecationWarning關於被棄用的特徵的警告
EnvironmentError作業系統錯誤的基類
EOFError沒有內建輸入,達到EOF標記
Exception常規錯誤的基類
FloatPointError浮點計算錯誤
FutureWarning關於構造語義將來會有改變的警告
GeneratorExit生成器(generator)發生異常,通知退出
ImportError匯入模組/物件失敗
IndentationError縮排錯誤
IndexError序列中沒有此索引
IOError輸入/輸出操作失敗
KeyboardInterrupt使用者中斷執行(通常是輸入^C)
KeyError對映中沒有這個鍵
LookupError無效查詢的基類
MemoryError記憶體溢位錯誤(對Python直譯器來說不是致命的)
NameError未宣告/初始化物件(沒有屬性)
NotImplementedError尚未實現的方法
OSError作業系統錯誤
OverflowError數值運算超出最大限制
OverflowWarning舊的關於自動提升為長整型(long)的警告
PendingDeprecationWarning關於特性將會被廢棄的警告
ReferenceError弱引用(Weak Reference)試圖訪問已經垃圾回收了的物件
RuntimeError一般的執行時錯誤
RuntimeWarning可以的執行時行為(Runtime Behavior)的警告
StandardError所有內建標準異常的基類
StopIteration迭代器沒有更多的值
SyntaxErrorPython語法錯誤
SyntaxWarning可以的語法的警告
SystemError一般的直譯器系統錯誤
SystemExit直譯器請求退出
TabErrorTab和空格鍵混用
TypeError對型別無效的操作
UnboundLocalError訪問未初始化的本地變數
UnicodeDecodeErrorUnicode編碼時的錯誤
UnicodeErrorUnicode相關的錯誤
UnicodeTranslateErrorUnicode轉換時的錯誤
UserWarning使用者程式碼生成的警告
ValueError傳入無效的引數
Warning警告的基類
WindowsError系統呼叫失敗
ZeroDivisionError除(或取模)零(所有資料型別)