自定义异常

前面介绍了异常的处理,在很多时候Python内置和标准库提供的异常就已经足够满足使用,但是在一些项目中,应用自定义异常也是十分普遍的事情,而且能够达到针对项目进行特殊设计。

异常就是一个继承了Exception类的类。Python中的所有异常都直接或者间接继承自Exception类。异常一般以Error字样结尾。当创建的一个模块有可能抛出多种不同的异常时,通常的做法是为这个包建立一个基础异常类,然后基于这个基类为不同的错误情况建立不同的子类。例如:

class Error(Exception):
	def __init__(self, value):
		self.value = value
	def __str__(self):
		return repr(self.value)

class InputError(Error):
	pass

class TransitionError(Error):
	pass