python Exception中的raise、assert


使用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語句檢測。

 

 

  

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM