Sorgfältige Behandlung von Anwendungsausnahmen in einer Tornado-Anwendung

Basierend auf einigem googeln habe ich den folgenden Fehlerhandler installiert. Die Python-Ausnahmen, die anscheinend einen http 500 zurückgeben, werden von diesem Zeug jedoch nicht erfasst, obwohl es sich um 404 handelt. Anhand der print-Anweisungen, die ich im folgenden Code hinterlassen habe, kann ich erkennen, dass keine dieser Routinen betroffen ist. Was soll ich wirklich tun?

class ErrorHandler(tornado.web.RequestHandler):
"""Generates an error response with status_code for all requests."""
def __init__ (self, application, request, status_code):
    print 'In ErrorHandler init'
    tornado.web.RequestHandler.__init__(self, application, request)
    self.set_status(status_code)

def get_error_html (self, status_code, **kwargs):
    print 'In get_error_html. status_code: ', status_code
    if status_code in [403, 404, 500, 503]:
        filename = '%d.html' % status_code
        print 'rendering filename: ', filename
        return self.render_string(filename, title=config.get_title())

    return "<html><title>%(code)d: %(message)s</title>" \
            "<body class='bodyErrorPage'>%(code)d: %(message)s</body>"\
            "</html>" % {
            "code": status_code,
            "message": httplib.responses[status_code],
            }

def prepare (self):
    print 'In prepare...'
    raise tornado.web.HTTPError(self._status_code)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage