python12.异常

异常:(本身是类,异常就是报错)
BaseException是所有异常的父类,包含以下
SystemExit:Python退出异常
KeyboardInterrupt: 键盘打断(Ctrl+C,直接打断循环)
GeneratorExit: 生成器退出异常
Exception: 普通异常(只会使用这部分的异常)

异常的‘处理’:
try:
print(会报错的代码)
except加报错代码的错误类型:后面再加个as xxx用给变量将捕获的异常保存起来,try中有错误被as捕获到才能打印他后面的变量,得到异常的返回值
处理方式。。。这样就不会报错
更丰富的结构可以加上else(不报错就执行)和finally(可以用于文件关闭)的结构

多个异常捕获时,层级是由小变大的,所以小的在上,大的在代码下面,否则后面的代码就用不了
代码中会出现的异常都是 Exception 的子类, 因此在 except 中只需要在最后加上 Exception(这样就可以跟踪多个异常了,但不够精确到哪个类型错误) 即可
在捕获异常的过程中,会从上倒下依次对比异常,找到之后就不会再往后查找

raise 是主动抛出后面写的异常类型,格式:raise 异常类型,可以主动抛出自定义的异常(新建的不是内置的异常类型,所以必须继承Exception)
被except保存于变量时,打印出来的是空行,raise放到异常处理的后面打印的是抛出的异常
自定义异常类型:
1.加raise抛出
2.找错,错误回溯。(1)看最后一行,再去从上往下看
错误查看 (2)用二分法
(3)看错误详细信息
(4)函数里找错的话,错误报告详细信息从最近到最远

断言(自定义的话语)语句是将调试断言插入程序的一种便捷方式

assert 的语法规则是:

表达式返回 True 不报错然后输出打印内容

表达式返回 False 报错 然后就打印出 AssertionError

猜你喜欢

转载自blog.csdn.net/qwe863226687/article/details/113969105