python Exception中的raiseassert

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Exception中的raiseassert相关的知识,希望对你有一定的参考价值。

使用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语句检测。

 

 

  

 

 

 

 


以上是关于python Exception中的raiseassert的主要内容,如果未能解决你的问题,请参考以下文章

Python2和Python3中raise Exception

python3 中的try... except Exception,e: ...怎么不能用了?变成啥了呢?

python基础-异常(exception)处理

Python中获取异常(Exception)信息

hausaufgabe--python 32 - Exception

python 获取exception 名字