From 68a43dc318fb7d76544d704752f243b9afed7e52 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Thu, 13 Jun 2024 15:04:28 -0500 Subject: Handle HTTP errors gracefully. --- qc_app/errors.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'qc_app/errors.py') diff --git a/qc_app/errors.py b/qc_app/errors.py index 1ce0d1f..bcd3543 100644 --- a/qc_app/errors.py +++ b/qc_app/errors.py @@ -13,8 +13,17 @@ def handle_general_exception(exc: Exception): exc.__class__.__module__, exc.__class__.__name__, request.url, trace) return render_template("unhandled_exception.html", trace=trace) +def handle_http_exception(exc: HTTPException): + """Handle HTTP exceptions.""" + app.logger.error( + "HTTP Error %s: %s", exc.code, exc.description, exc_info=True) + return render_template(f"http-error.html", + request_url=request.url, + exc=exc, + trace=traceback.format_exception(exc)), exc.code + def register_error_handlers(appl: Flask): """Register top-level error/exception handlers.""" appl.register_error_handler(Exception, handle_general_exception) - appl.register_error_handler(HTTPException, handle_general_exception) + appl.register_error_handler(HTTPException, handle_http_exception) appl.register_error_handler(mdb.MySQLError, handle_general_exception) -- cgit v1.2.3