Python 還支持斷言語法。在一套程序完成之前,編程者并不知道程序可能會在哪里報錯,或是觸發何種條件的報錯,因此使用斷言語法可以有效地做好異常檢測,并適時觸發和拋出異常。
Python 中使用 assert 語句聲明斷言,其語法為:
assert 表達式 [, "斷言異常提示信息"]
Python 首先檢測表達式結果是否為 True,若為 True 則繼續向下執行,否則將觸發斷言異常,并顯示斷言異常提示信息,后續代碼捕獲該異常并做進一步處理。例如:
python拋出異常繼續執行、def testAssert(x):
assert x < 1,'無效值'
print ("有效值")
testAssert(1)
上述代碼的運行結果如下所示:
assert python。>>> def testAssert(x):
...????????? assert x < 1,'無效值'
...????????? print ("有效值")
>>> testAssert(1)
Traceback (most recent call last):
import python、File "", line 1, in
testAssert(1)
File "", line 2, in testAssert
assert x < 1,'無效值'
AssertionError: 無效值
python中的elif,可見,當 assert 語句判斷的表達式結果為 False 時觸發了斷言異常,此時可以使用 try…except 語句捕獲并做進一步處理,例如:
def testAssert(x):
assert x < 1, '無效值'
print("有效值")
try:
python異常處理原理、testAssert(1)
except Exception:
print("捕獲成功")
上述代碼的運行結果如下所示:
>>> def testAssert(x):
python str、...? ? ? ? ? assert x < 1, '無效值'
...? ? ? ? ? print("有效值")
>>> try:
...? ? ? ? ?testAssert(1)
...? ? ?except Exception:
lambda python,...? ? ? ? ?print("捕獲成功")
捕獲成功
Python解釋器內置的預定義標準異常如表 1 所示。
表 1:Python 解釋器內置的預定義標準異常
異常名稱
python append,描述
ArithmeticError
所有數值計算錯誤的基類
AssertionError
斷言語句失敗
python捕獲異常、AttributeError
對象無此屬性
BaseException
所有異常的基類
DeprecationWarning
python自定義異常?關于被棄用的特征的警告
EnvironmentError
操作系統相關的錯誤的基類
EOFError
到達文件尾(EOF, End-of-File)錯誤
python中assert()函數?Exception
常規錯誤的基類
FloatingPointError
浮點計算錯誤
FutureWarning
python中的異常處理,關于將來語義會有改變的警告
GeneratorExit
生成器發生異常通知退出
ImportError
引入模塊/對象失敗
IndentationError
縮進錯誤
IndexError
序列中無此索引
IOError
輸入/輸出操作失敗
Keyboardlnterrupt
用戶中斷執行
KeyError
映射中無此鍵
LookupError
無效數據查詢的基類
MemoryError
內存溢出錯誤
NameError
未聲明/初始化對象,名稱調用錯誤
NotImplementedError
尚未實現的方法
OSError
操作系統錯誤
OverflowError
數值運算超出最大限制
PendingDeprecationWarning
關于特性將會被廢棄的警告
ReferenceError
弱引用試圖訪問已經被回收的對象
RuntimeError
一般運行時錯誤
RuntimeWarning
運行時行為警告
StandardError
所有內建標準異常的基類
StopIteration
迭代器沒有更多的值
SyntaxError
Python語法錯誤
SyntaxWarning
語法警告
SystemError
一般的解釋器系統錯誤
SystemExit
解釋器請求退出
TabError
Tab和空格混用
TypeError
對類型無效的操作
UnboundLocalError
訪問未初始化的本地變量
UnicodeDecodeError
Unicode解碼錯誤
UnicodeEncodeError
Unicode編碼錯誤
UnicodeError
Unicode相關錯誤
UnicodeTranslateError
Unicode轉換錯誤
UserWarning
用戶代碼生成的警告
ValueError
傳入無效參數
Warning
各種警告的基類
WindowsError
系統調用失敗
ZeroDivisionError
除(或取模)零錯誤
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态