Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對象和類

Python 日期和時間

Python 高級知識

Python 參考手冊

Python 錯誤和內(nèi)置異常

Python(解釋器)遇到錯誤時會引發(fā)異常。 例如:除以零。 在本文中,您將了解Python內(nèi)置的不同異常處理。

在編寫程序時,我們經(jīng)常會遇到錯誤。

由于未遵循語言的正確結(jié)構(gòu)(語法)而導(dǎo)致的錯誤稱為語法錯誤或解析錯誤。

>>> if a < 3
  File "<interactive input>", line 1
    if a < 3
           ^
SyntaxError: invalid syntax

在這里我們可以注意到if語句中缺少一個冒號。

錯誤也可能在運行時發(fā)生,這些被稱為異常。 例如,當(dāng)我們嘗試打開的文件不存在(FileNotFoundError),將數(shù)字除以零(ZeroDivisionError),找不到我們嘗試導(dǎo)入的模塊(ImportError)等時,就會發(fā)生這種情況。

每當(dāng)發(fā)生這種類型的運行時錯誤時,Python都會創(chuàng)建一個異常對象。如果處理不當(dāng),它將輸出對該錯誤的回溯,以及關(guān)于該錯誤發(fā)生原因的一些詳細(xì)信息。

>>> 1 / 0
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero

>>> open("imaginary.txt")
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'

Python內(nèi)置異常

非法操作可能引發(fā)異常。Python中有很多內(nèi)置的異常,當(dāng)出現(xiàn)相應(yīng)的錯誤時就會引發(fā)這些異常。我們可以使用local()內(nèi)置函數(shù)查看所有的內(nèi)置異常,如下所示。

>>> locals()['__builtins__']

這將為我們返回內(nèi)置的異常,函數(shù)和屬性的字典。

下面列出了Python編程中一些常見的內(nèi)置異常以及導(dǎo)致該異常的錯誤。

Python內(nèi)置標(biāo)準(zhǔn)異常
例外錯誤原因
AssertionError在assert語句失敗時引發(fā)。
AttributeError在屬性分配或引用失敗時引發(fā)。
EOFError當(dāng)input()函數(shù)達(dá)到文件結(jié)束條件時引發(fā)。
FloatingPointError當(dāng)浮點運算失敗時引發(fā)。
GeneratorExit在close()調(diào)用生成器的方法時引發(fā)。
ImportError在找不到導(dǎo)入的模塊時引發(fā)。
IndexError當(dāng)序列的索引超出范圍時引發(fā)。
KeyError在字典中找不到鍵時引發(fā)。
KeyboardInterrupt當(dāng)用戶按下中斷鍵(Ctrl + c或Delete)時引發(fā)。
MemoryError在操作內(nèi)存不足時引發(fā)。
NameError在本地或全局范圍內(nèi)找不到變量時引發(fā)。
NotImplementedError尚未實現(xiàn)的方法。
OSError當(dāng)系統(tǒng)操作導(dǎo)致系統(tǒng)相關(guān)錯誤時引發(fā)。
OverflowError當(dāng)算術(shù)運算的結(jié)果太大而無法表示時引發(fā)。
ReferenceError在使用弱引用代理訪問垃圾收集的引用對象時引發(fā)。
RuntimeError當(dāng)錯誤不屬于任何其他類別時引發(fā)。
StopIteration由next()函數(shù)引發(fā),以指示迭代器沒有其他項目可返回。
SyntaxError遇到語法錯誤時由解析器引發(fā)。
IndentationError縮進(jìn)不正確時引發(fā)。
TabError當(dāng)縮進(jìn)由不一致的制表符和空格組成時引發(fā)。
SystemError在解釋器檢測到內(nèi)部錯誤時引發(fā)。
SystemExit由sys.exit()功能引發(fā)。
TypeError當(dāng)函數(shù)或操作應(yīng)用于錯誤類型的對象時引發(fā)。
UnboundLocalError在對函數(shù)或方法中的局部變量進(jìn)行引用但沒有值綁定到該變量時引發(fā)。
UnicodeError在發(fā)生與Unicode相關(guān)的編碼或解碼錯誤時引發(fā)。
UnicodeEncodeError在編碼過程中發(fā)生與Unicode相關(guān)的錯誤時引發(fā)。
UnicodeDecodeError在解碼期間發(fā)生與Unicode相關(guān)的錯誤時引發(fā)。
UnicodeTranslateError在翻譯過程中發(fā)生Unicode相關(guān)錯誤時引發(fā)。
ValueError當(dāng)函數(shù)獲取正確類型但值不正確的參數(shù)時引發(fā)。
ZeroDivisionError當(dāng)除法或模運算的第二個操作數(shù)為零時引發(fā)。

我們也可以在Python中定義我們自己的異常(如果需要的話)。訪問此頁面以了解有關(guān)用戶定義的異常的更多信息。 

我們可以使用try、except和finally語句在Python中處理這些內(nèi)置的和用戶定義的異常。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清