#997 Return string representation of exception instead of e.args[0] in Flask error handlers.
Merged 11 months ago by mprahl. Opened 11 months ago by jkaluza.
jkaluza/fm-orchestrator log-exceptions  into  master

@@ -113,43 +113,44 @@ 

  @app.errorhandler(ValidationError)

  def validationerror_error(e):

      """Flask error handler for ValidationError exceptions"""

-     return json_error(400, 'Bad Request', e.args[0])

+     return json_error(400, 'Bad Request', str(e))

  

  

  @app.errorhandler(Unauthorized)

  def unauthorized_error(e):

      """Flask error handler for NotAuthorized exceptions"""

-     return json_error(401, 'Unauthorized', e.args[0])

+     return json_error(401, 'Unauthorized', str(e))

  

  

  @app.errorhandler(Forbidden)

  def forbidden_error(e):

      """Flask error handler for Forbidden exceptions"""

-     return json_error(403, 'Forbidden', e.args[0])

+     return json_error(403, 'Forbidden', str(e))

  

  

  @app.errorhandler(RuntimeError)

  def runtimeerror_error(e):

      """Flask error handler for RuntimeError exceptions"""

-     return json_error(500, 'Internal Server Error', e.args[0])

+     log.exception("RuntimeError exception raised")

+     return json_error(500, 'Internal Server Error', str(e))

  

  

  @app.errorhandler(UnprocessableEntity)

  def unprocessableentity_error(e):

      """Flask error handler for UnprocessableEntity exceptions"""

-     return json_error(422, 'Unprocessable Entity', e.args[0])

+     return json_error(422, 'Unprocessable Entity', str(e))

  

  

  @app.errorhandler(Conflict)

  def conflict_error(e):

      """Flask error handler for Conflict exceptions"""

-     return json_error(409, 'Conflict', e.args[0])

+     return json_error(409, 'Conflict', str(e))

  

  

  @app.errorhandler(NotFound)

  def notfound_error(e):

      """Flask error handler for Conflict exceptions"""

-     return json_error(404, 'Not Found', e.args[0])

+     return json_error(404, 'Not Found', str(e))

  

  

  init_logging(conf)

Also log.exception in RuntimeError handler, because we generally want to know the reasons why the RuntimeError has been raised. Other exceptions are more user oriented and logging the traceback for them is in my opinion useless.

Commit 0cec1ef fixes this pull-request

Pull-Request has been merged by mprahl

11 months ago

Pull-Request has been merged by mprahl

11 months ago