使用raise拋出異常
當程序出現錯誤,python會自動引發異常,也可以通過raise顯式地引發異常。一旦執行了raise語句,raise后面的語句將不能執行。
演示raise用法。
try: s = None if s is None: print "s 是空對象" raise NameError #如果引發NameError異常,后面的代碼將不能執行 print len(s) except TypeError: print "空對象沒有長度"
自定義異常
python允許程序員自定義異常,用於描述python中沒有
涉及的異常情況,自定義異常必須繼承Exception
類,自定義
異常按照命名規范以"Error"結尾,顯示地告訴程序員這是異常。自定義異常使用raise語句引發,而且只能通過人工方式觸發。
from __future__ import division class DivisionException(Exception): def __init__(self, x, y): Exception.__init__ (self, x, y) #調用基類的__init__進行初始化 self.x = x self.y = y if __name__ == "__main__": try: x = 3 y = 2 if x % y > 0 : #如果大於0, 則不能被初始化,拋出異常 print x/y raise DivisionException(x, y) except DivisionException,div: #div 表示DivisionException的實例對象 print "DivisionExcetion: x/y = %.2f" % (div.x/div.y)
運行結果:
1.5
DivisionExcetion: x/y = 1.50
assert語句的使用
assert語句用於檢測某個條件表達式是否為真。assert語句又稱為斷言語句,即assert認為檢測的表達式永遠為真,if語句中的條件判斷都可以使用assert語句檢測。