Flask捕获异常

  • errorhandler 装饰器

    • 注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法

  • 参数:

    • code_or_exception – HTTP的错误状态码或指定异常

  • 例如统一处理状态码为500的错误给用户友好的提示:

 

from flask import Flask,request,abort

app = Flask(__name__)

# errorhandler 可以捕获指定http状态码的异常
@app.errorhandler(400)
def internal_server_error(e):
    print(e)
    return '对不起,参数有误!'

# errorhandler 也可以捕获指定的内置异常或者自定义的异常
class APIError(Exception):
    pass

# 捕获自定义异常
@app.errorhandler(APIError)
def api_error(e):
    print(e)
    return "api请求有误"

# 捕获标准异常[python内置声明的]
@app.errorhandler(ZeroDivisionError)
def zero_division_error(e):
    print(e)
    return '除数不能为0'

@app.route("/")
def index():
    # # 主动抛出HTTP异常
    # if not request.args.get("uname"):
    #     abort(400)

    # 抛出自定义异常并进行处理
    # raise APIError("api接口发生异常!!!!")

    1/0

    return "ok"


if __name__ == '__main__':
    app.run(host="0.0.0.0",port=5000,debug=True)

 

posted @ 2021-07-22 16:48  urls  阅读(221)  评论(0编辑  收藏  举报