我有一个使用Flask / Python制作的简单Web应用程序。我有一个用户定义的异常,我用它来尝试捕获代码中的异常。但是,我想为我的用户定义的异常显示自定义错误页面。在Flask中,我读到你必须使用@errorhandler
装饰器。
我读到的很多例子都是这样的:
@app.errorhandler(Exception)
#some code
我的问题是,在@app.errorhandler
之后,括号中的内容是什么?您是否传递了已定义的异常类的名称?我在网上看到的所有例子都没有说明括号之间的内容,所以我想知道在括号中传递什么异常。
答案 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 :)')