24 lines
671 B
Python
24 lines
671 B
Python
import traceback
|
|
|
|
from flask.app import Flask
|
|
from werkzeug.exceptions import HTTPException
|
|
|
|
from ceo_common.logger_factory import logger_factory
|
|
|
|
__all__ = ['register_error_handlers']
|
|
logger = logger_factory(__name__)
|
|
|
|
|
|
def register_error_handlers(app: Flask):
|
|
"""Register error handlers for the application."""
|
|
app.register_error_handler(Exception, generic_error_handler)
|
|
|
|
|
|
def generic_error_handler(err: Exception):
|
|
"""Return JSON for internal server errors."""
|
|
# pass through HTTP errors
|
|
if isinstance(err, HTTPException):
|
|
return err
|
|
logger.error(traceback.format_exc())
|
|
return {'error': type(err).__name__ + ': ' + str(err)}, 500
|