首页 > 其他 > 详细

四、Flask_异常捕获与上下文

时间:2019-05-30 23:22:50      阅读:106      评论:0      收藏:0      [点我收藏+]

 

 

1. 异常捕获

1.1 主动抛出HTTP异常

  • abort 方法

    • 抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。

  • 参数:

    • code – HTTP的错误状态码

# abort(404)
abort(500)

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

1.2 捕获错误

  • 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
技术分享图片
class APIError(Exception):
    pass

"""抛出http异常和异常捕获"""

# 不仅可以不同的http请求错误
@app.errorhandler(404)
def errorhandler404(exc):
    """声明的异常处理函数, 必须设置一个位置参数来接收异常处理对象"""
    return <h1 style="text-align: center;margin-top: 200px;">服务器搬家了</h1>

# 还可以针对指定的异常类型进行捕获
@app.errorhandler(APIError)
def errorhandlerapi(exc):

    return <h1 style="text-align: center;margin-top: 200px;">API挂了!</h1>
代码仅供参考

 

四、Flask_异常捕获与上下文

原文:https://www.cnblogs.com/yijue-lu/p/10952482.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!