自定义异常为什么不从BaseException继承

自定义一个异常需要继承Exception类或子类,虽然BaseException是Exception的父类,但如果继承BaseException可能会导致捕获不到自定义的异常,来看个例子:

y运行这段代码会进行报错,没有捕获到我们自定义的异常,改成继承Exception就可以正常捕获了,如下:

自定义错误信息:

就是在初始化的时候传入错误内容, 然后实例化这个类, 这个e就是实例化后的对象,之所以能显示错误信息是因为定义了__str__方法,对象以字符串形式显示。