小编典典

捕获异常并显示自定义错误页面

python

我有一个Flask应用。我在我的一个库中做了一个自定义异常,该异常与一个非常具体的错误有关,我想通知用户。

我想发生的事情是,只要引发此异常,就让Flask转到该异常的默认页面,并简短说明用户需要做什么。

我有

class SpecificException(Exceptions):
    pass

接着

def __verify_compatible_version(self):
    if self.version != VERSION:
        raise SpecificException ("detected incompatible version")

我不确定该怎么做。该文档似乎表明有可能,但是我没有看到任何好的例子,也没有建议如何做。如何显示自定义页面来处理我的自定义异常?


阅读 107

收藏
2020-12-20

共1个答案

小编典典

您需要为异常注册一个错误处理程序。错误处理程序的行为类似于普通视图,它应返回响应(或类似响应的数据)。在这种情况下,我假设您最终要发送500状态代码,因此这就是, 500返回与一起出现的原因。处理程序将异常实例作为第一个参数接收,因此,如果模板具有特殊信息,则可以在呈现模板时使用它。

class SpecificException(Exception):
    pass

@app.errorhandler(SpecificException)
def handle_specific_exception(e):
    return render_template('errors/specific_exception.html', e=e), 500
2020-12-20