python异常处理
异常就是报错,异常的本身是类
BaseException 是所有异常的父类
GeneratorExit 生成器退出
SystemExit Python退出异常
Keyboardlnterrupt 键盘打断
Exception 普通异常
try: #可能会有错误的代码
print(a)
except Exception: #报错后需要执行的代码
pass
try: #可能会有错误的代码
a = 1
print(a)
except NameError as f: #报错后需要执行的代码
# print(f)
print('上面的代码报错了,报错信息为:%s'%f)
else:
print('=====else=====')
finally:
print('=====finally=====')
#当try里面的代码没有问题时,
#except捕获不到错误,不会执行,代码正常运行
#else,代码报错就会执行
#finally,不管报不报错,都会被执行
多个异常捕获时,层级是由小变大的
抛出异常
try:
a = 1+1
print(a)
raise NameError
except NameError as f:
print(f)
3、断言
a = 1
b = 2
assert a > b
Traceback (most recent call last):
File "D:/python课件/异常.py", line 34, in <module>
assert a > b
AssertionError
断言语句是将调试断言插入程序的一种便捷方式
assert 的语法规则是:
表达式返回 True 不报错
表达式 False 报错 报AssertionError
a = 2
class AaaError(Exception):
pass
if a == 1:
print('====')
else:
raise AaaError
Traceback (most recent call last):
File "D:/python课件/异常.py", line 46, in <module>
raise AaaError
__main__.AaaError
4、找错,错误回溯
看最后一行
再去从上往下看
看错误详细