Python使用异常处理错误
- BaseException
- SystemExit/Keyboard/Interrupt/GeneratorExit
- Exception
此链接python官方文档底部有异常等级图看参考
Python使用异常的常见场景
- 网络请求(超时、连接错误)
- 资源访问(权限问题,资源不存在)
- 代码逻辑(越界访问,KeyError等)
Python处理异常模板:
try:
pass
except (Exception1, Exception2) as e:
pass
else:
pass
finally:
pass
Python如何自定义异常
- 继承Exception实现自定义异常,不继承BaseException是因为和Exception同级的也有几个,而继承BaseException会导致捕捉到这几个异常错误,比如经典的ctrl+c触发的KeyboardInterrupt
- 给异常添加一些附加信息
- 处理业务相关的特定异常
raise MyException
class MyException(Exception):
pass
try:
raise MyException('my exception')
except MyException as e:
print(e)