天天看点

Flask中异常捕获

HTTP 异常主动抛出

  • abort 方法
    • 抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。
  • 参数:
    • code – HTTP的错误状态码
      # abort(404)
      abort(500)
            

  抛出状态码的话,只能抛出 HTTP 协议的错误状态码 

捕获错误

  • errorhandler 装饰器
    • 注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法
    • code_or_exception – HTTP的错误状态码或指定异常
  • 例如统一处理状态码为500的错误给用户友好的提示:
    @app.errorhandler(500)
    def internal_server_error(e):
        return '服务器搬家了'       
  • 捕获指定异常
    @app.errorhandler(ZeroDivisionError)
    def zero_division_error(e):
        return '除数不能为0'