我希望能够处理一个更好的错误,如果我键入错误的URL,则显示错误 E.g. localhost:8000/AFDADSFDKFADS
我收到一条丑陋的python traceback消息,因为抛出了tornado.web.HTTPError异常.我知道我可以使用正则表达式来捕获除了正确的URL之外的所有场景但是我认为必须有一种方法来处理Tornado中的这个错误.
我知道我可以使用write_error()
while扩展,tornado.web.RequestHandler
但因为这个错误发生在tornado.web.Application
类中我不知道如何处理它.我认为这可能与班级有关,tornado.web.ErrorHandler(application, request, **kwargs)
但我不确定.
也有人可以告诉我,如果我在一个tornado.web.RequestHandler
方法中并执行一个raise KeyError
或其他异常而没有捕获它为什么write_error()
没有被调用?似乎忽略了例外.
Ben*_*ell 13
要提供自定义404页使调用句柄self.set_status(404)
(除生产你想要的任何输出),并将其设置为default_handler_class
在Application
构造函数中的关键字参数.
class My404Handler(RequestHandler):
# Override prepare() instead of get() to cover all possible HTTP methods.
def prepare(self):
self.set_status(404)
self.render("404.html")
app = Application(..., default_handler_class=My404Handler)
Run Code Online (Sandbox Code Playgroud)
您可能不想使用ErrorHandler
:它是一种返回指定状态代码的简单方法,但它不能让您控制输出.
归档时间: |
|
查看次数: |
5071 次 |
最近记录: |