1、自定义异常
日常开发中,当系统提供的异常类型不能满足开发的需求时,就需要自己创建一个新的异常类来拥有自己的异常。
自定义异常类继承自 Exception 类,可以直接继承,或者间接继承。
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
2、如何手动抛出异常:raise
系统的自带的异常只要触发会自动抛出,比如NameError,但用户自定义的异常需要用户自己决定什么时候抛出。
raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。大多数的异常的名字都以"Error"结尾,所以实际命名时尽量跟标准的异常命名一样。
正常情况下出现错误:
这个错误的程序运行的结果为:
而用了raise语句之后:
输出结果为:
1.用户自定义异常类型
2.手动抛出用户自定义类型异常
输入张楠,输出结果:
输入不是张楠,输出结果为:
3.捕捉用户手动抛出的异常
输入不是张楠的输出结果为:
4.总结
class TooLongExceptin(Exception):
"this is user's Exception for check the length of name "
def __init__(self,name):
self.name = name
def __str__(self):
print("你的名字不是张楠,名字错误")