Python 常見異常類型介紹 [Python 異常]

您的“關注”和“點贊”,是信任,是認可,是支持,是動力…

如意見相佐,可留言。
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新。

常見異常類型介紹:

1 ZeroDivisionError

除法運算中除數爲 0 引發此異常。

舉例如下所示:

import traceback
try:
    res = 10 / int(input('請輸入一個除數:'))
    print(res)
except:
    traceback.print_exc()

運行結果:

請輸入一個除數:0
Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 3, in <module>
    res = 10 / int(input('請輸入一個除數:'))
ZeroDivisionError: division by zero

2 AssertionError

當 assert 關鍵字後的條件爲假時,程序運行會停止並拋出 AssertionError 異常。

舉例如下所示:

import traceback
try:
    list_demo = []  # 空列表
    assert len(list_demo) > 0
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 4, in <module>
    assert len(list_demo) > 0
AssertionError

3 AttributeError

當試圖訪問的對象屬性不存在時拋出的異常。

舉例如下所示:

import traceback
try:
    list_demo = [1, 2, 3]
    list_demo.len  # 列表沒有 len 屬性
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 4, in <module>
    list_demo.len
AttributeError: 'list' object has no attribute 'len'

4 NameError

嘗試訪問一個未聲明的變量時,引發此異常。

舉例如下所示:

import traceback
try:
    print(name)
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 3, in <module>
    print(name)
NameError: name 'name' is not defined

5 IndexError

索引超出序列範圍會引發此異常。

舉例如下所示:

import traceback
try:
    list_demo = [1, 2, 3]
    print(list_demo[3])
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 4, in <module>
    print(list_demo[3])
IndexError: list index out of range

6 KeyError

字典中查找一個不存在的關鍵字時引發此異常。

舉例如下所示:

import traceback
try:
    dict_demo = {'Q': '斬鋼閃'}
    print(dict_demo['E'])
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 4, in <module>
    print(dict_demo['E'])
KeyError: 'E'

7 TypeError

不同類型數據之間的無效操作。

舉例如下所示:

import traceback
try:
    str = '阿杰' + 10
    print(str)
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 3, in <module>
    str = '阿杰' + 10
TypeError: can only concatenate str (not "int") to str

8 FileNotFoundError

找不到指定文件錯誤。

舉例如下所示:

import traceback
try:
    t = open('test.txt')
except:
    traceback.print_exc()

運行結果:

Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 3, in <module>
    t = open('test.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

【友情鏈接】

微信公衆號:碼農阿杰

博客園

【參考資料】

Python 官網

Python 3.8.2 documentation

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章