在 Flask 程序中,使用 app.errorhandler() 装饰器能够注册错误处理函数,传入 HTTP 错误状态码或是特定的异常类,好比:app
@app.errorhandler(404)
def error_404(e):
return '404 Error', 404复制代码
若是发生 404 错误,就会触发这个函数获取返回值做为响应主体。函数
一般咱们会为不一样的 HTTP 错误编写各自的的错误处理函数,以便返回不一样的响应。若是你愿意的话,咱们也能够编写一个统一的错误处理函数,这个函数会处理全部的 HTTP 错误,只须要在装饰器内传入 Exception 类便可:spa
@app.errorhandler(Exception)
def all_exception_handler(e):
return 'Error', 500复制代码
如今全部的 HTTP 错误都会触发这个函数。你也能够在函数中对错误进行分类处理:调试
@app.errorhandler(Exception)
def all_exception_handler(e):
# 对于 HTTP 异常,返回自带的错误描述和状态码
# 这些异常类在 Werkzeug 中定义,均继承 HTTPException 类
if isinstance(e, HTTPException):
return e.desciption, e.code
return 'Error', 500 # 通常异常复制代码
若是你使用 Flask 0.12 版本,则须要参考这个 SO 回答重写相关方法。code
附注一些关于错误处理的小知识:对象