在python中,只需继承Exception,就可以实现自定义异常类
class printException(Exception):
pass只有两行代码,是不是很简单呢,那么如何使用呢?
def testRaise():
raise printException('printErr')
try:
testRaise()
except printException,e:
print e捕捉到异常后,打印出的内容就是printErr,看来使用起来也很方便,这里要牢记,一旦使用了raise,那么之后的语句就不会再执行了,因为这里抛出了一个异常
上面的例子虽然简单,但是有一点不足,每一次raise的时候,我们都都需要写异常的说明,也就是printErr这个字符串,接下来,稍微做一点改进
class DatabaseException(Exception):
def __init__(self,err='数据库错误'):
Exception.__init__(self,err)
class PreconditionsException(DatabaseException):
def __init__(self,err='PreconditionsErr'):
DatabaseException.__init__(self,err)新定义的两个异常类,各自有自己的初始化代码,并有一个默认的错误说明,这样raise的时候,就不需要自己再输入错误说明了
使用起来也一样的方便
def testRaise():
raise DatabaseException()
try:
testRaise()
except DatabaseException,e:
print e最终的输出结果就是“数据库错误”
如果你不确定抛出来的异常是什么,那么就except Exception ,因为这是所以异常类的基类,因此,这样写可以捕获到所有的异常类,上面的例子中,如果改成这样
except PreconditionsException,e:
那么,程序是不会捕获到异常的,因为此刻,抛出是PreconditionsException的基类,此处无法捕获,程序终止
本文介绍在Python中如何通过继承Exception来创建自定义异常类,并通过实例展示了异常类的创建、使用及优化方法。文章还讨论了异常处理的细节,包括如何在代码中捕获和处理异常,以及不同情况下使用不同异常类的重要性。
390

被折叠的 条评论
为什么被折叠?



