python异常处理之用raise主动抛出异常,并自定义异常类
在python的编程开发当中,我们可以用raise关键字来主动抛出异常,而且可以抛出自定义的异常类。其中,自定义的异常类的创建跟一般的类的创建没什么两样,只是要继承BaseException类。
自定义异常类,并用raise抛出该异常
接下来,我们通过一个实例来介绍异常类的自定义,及raise的用法。
class Wrong(BaseException):
def __init__(self, message):
self.message = message
def __str__(self):
return self.message
def count():
try:
print('1+1=3')
raise Wrong('错了,1+1应该等于2')
except Wrong as err_w:
print(err_w)
count()
代码输出:
1+1=3
错了,1+1应该等于2
代码解析
如上代码,我们创建了一个Wrong的异常类型,继承了BaseException异常类,并在try...except...语句中用raise主动抛出异常,并用我们自定义的Wrong异常类型来捕捉。当然,我们也可以用try...except...else...finally...等异常处理模式来捕捉我们自定义的异常类。
__str__(),这个有必要具体介绍一下。在python当中,__xxx__的方法被称为魔法方法,当程序中使用print函数来打印对象的时候,只要定义了__str__(self)方法,那么就会输出该方法中return的返回值,通常情况下,__str__方法的返回值是一个字符串,用于描述当前对象。
自定义异常类的内容就先介绍到这里,下一章我们将罗列出一个python内置的异常类型表,可供查询之用。