Flask / Python:用户定义的异常的错误处理程序

时间:2018-05-14 10:12:11

标签: python flask exception-handling

我有一个使用Flask / Python制作的简单Web应用程序。我有一个用户定义的异常,我用它来尝试捕获代码中的异常。但是,我想为我的用户定义的异常显示自定义错误页面。在Flask中,我读到你必须使用@errorhandler装饰器。

我读到的很多例子都是这样的:

@app.errorhandler(Exception)
#some code

我的问题是,在@app.errorhandler之后,括号中的内容是什么?您是否传递了已定义的异常类的名称?我在网上看到的所有例子都没有说明括号之间的内容,所以我想知道在括号中传递什么异常。

1 个答案:

答案 0 :(得分:0)

errorhandler的参数是您的用户定义的异常。在处理程序内部,您可以返回任何您想要的内容,其中包括模板。例如:

from flask import render_template

class MyCustomException(Exception):
    pass

@app.errorhandler(MyCustomException)
def custom_handler(e):
    return render_template('my_custom_error_page.html')

在这种情况下,只要引发MyCustomException,应用就会返回html页面my_custom_error_page.html

您可以测试此操作以强制执行异常。例如:

@app.route('/test_exception')
def test_exception():
    raise MyCustomException('just testing :)')