首页 > 解决方案 > Flask:@app.errorhandler(500) 和 @app.errorhandler(exception) 之间的区别

问题描述

据我了解,@app.errorhandler(500) 会更改未处理错误的默认错误,而 @app.errorhandler(exception) 会捕获所有错误(已使用处理程序指定的错误除外)。这不是说这两件事本质上都达到了同样的目的吗?真的有区别吗

标签: apirestflaskexceptionhandler

解决方案


@app.errorhandler(500)将处理源自返回HTTP 状态代码500 的页面的错误。而@app.errorhandler(exception)范围更广,可用于global exception handling. 例如,如果您的代码引发了 OSError 异常,则应在此处处理异常(除非有问题的代码被其自己的 try/catch 块覆盖)。

因此,它可以很方便地用于@app.errorhandler(404)自定义 404 Not found 页面并@app.errorhandler(exception)一直用于更严重的 Python 异常。


推荐阅读