flask中可以使用装饰器errorhandler来对指定的异常、状态码等统一捕获并处理。
对指定的状态码进行统一捕获
@app.errorhandler(404)
# 参数e是异常的详细信息的对象,必须要有一个参数接收异常对象。
def pagenotfound(e):
# 比如可以重定向到统一的404静态页面中。
# 不过如果是前后端分离开发,一般都是直接返回reseful的json数据,然后前端根据code来自行重定向到404页面。
data = {"code": 404, "data": None}
response = jsonify(data)
response.status_code = data["code"]
return response
对某种异常类统一捕获
@app.errorhandler(ZeroDivisionError)
def zeroerror(e):
return "除数不能为0!"
# 不用装饰器的方法直接调用方式:这种方式学装饰器的时候也学过了,相当于将@装饰拆解开来而已。
app.errorhandler(ZeroDivisionError)(zeroerror)
如果是这样,还不如用官方推荐的
app.register_error_handler(code_or_exception, handler_func)
标签:code,flask,捕获,errorhandler,404,异常,app
From: https://www.cnblogs.com/juelian/p/17742124.html