Error handling with exception mappers

For basic error handling, Jivago provides an ExceptionMapper mechanism, which can automatically create an HTTP response for an uncaught exception. To define a custom exception mapper, create a component which inherits from the ExceptionMapper interface, implementing the handles and create_response methods.

from jivago.inject.annotation import Component
from jivago.lang.annotations import Override
from jivago.wsgi.filter.system_filters.error_handling.exception_mapper import ExceptionMapper
from jivago.wsgi.request.response import Response


@Component
class TeapotExceptionMapper(ExceptionMapper):

    @Override
    def handles(self, exception: Exception) -> bool:
        return exception == TeapotException

    @Override
    def create_response(self, exception: Exception) -> Response:
        return Response(418, {}, "Error! I am a teapot!")
  • handles(exception) -> bool : Used to find the corresponding exception mapper.

  • create_response(exception) -> Response : Creates the actual HTTP response.