对于python程序中,进行异常捕获,一般我们都用try except,但是还有其他方式经常使用。
以后再进行异常处理时,知道有四种方式,可以考虑更合适的方式
下面介绍一下四种方式
1、内部抛出异常(try-except)
try 不能单独使用,必须配合except、finally使用,组合使用就四种方式
错误信息的种类除了Exception,还有很多Exception的子类:IndexError,ValueError等,这些是细分领域的错误。
第1、2种组合用法
![b87666679633a75c91b22a02c4dc3da7.png](https://img-blog.csdnimg.cn/img_convert/b87666679633a75c91b22a02c4dc3da7.png)
第3、4种组合用法
![7a4dd457e55450290a0ad147bd96ab27.png](https://img-blog.csdnimg.cn/img_convert/7a4dd457e55450290a0ad147bd96ab27.png)
2、主动抛出异常(raise)
如果想让这里报出一个错误,又不想中断程序,就可以使用raise
![52cae952bf4242429d929588821c4c0d.png](https://img-blog.csdnimg.cn/img_convert/52cae952bf4242429d929588821c4c0d.png)
3、自定义异常(继承系统异常类)
如果你的程序不用python自带的异常,可以自定义一个异常类;
自定义的异常一般都是主动触发的,在计划使用的地方来使用它;
__str__ 在打印对象的时候自动执行,详细可以点击【类的特殊方法-自动调用】来了解
![2f9ed7301247a1877d10776335de181e.png](https://img-blog.csdnimg.cn/img_convert/2f9ed7301247a1877d10776335de181e.png)
4、断言 assert 条件
强制用户服从,不服从就报错,可以捕获,一般不捕获;
条件满足就执行,不满足都不让执行,直接报错
![6bb524950415779fbf904cdad9534322.png](https://img-blog.csdnimg.cn/img_convert/6bb524950415779fbf904cdad9534322.png)