Python自定义异常类

Python自定义异常可以通过继承自带的异常类来实现。


示例:

# simple
def validate(name):
if len(name) < 8:
raise ValueError # or raise ValueError()

# better
def validate1(name):
if len(name) < 8:
raise ValueError('Name too short: {}'.format(name))

# more specific customerize exception
class NameTooShortError(ValueError):
pass

def validate2(name):
if len(name) < 8:
raise NameTooShortError(name)

print(validate2('molock'))

输出结果:

validate:
ValueError

validate1:
ValueError: Name too short: molock

validate2:
__main__.NameTooShortError: molock

自定义异常类可以抛出更明确无歧义的异常信息。