'Get a response object.  If one was passed to the exception
it\'s returned directly.
:param environ: the optional environ for the request.  This
can be used to modify the response depending
on how the request looked like.
:return: a :class:`Response` object or a subclass thereof.'

def get_response(self, environ=None):

    if (self.response is not None):
        return self.response
    if (environ is not None):
        environ = _get_environ(environ)
    headers = self.get_headers(environ)
    return Response(self.get_body(environ), self.code, headers)
