<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def process_exception(self, e, uuid, routing_key, body, tb=None):
 """ Callback called when exception was raised. This method serializes the exception and sends it over AMQP back to caller. Args: e (obj):
 Instance of the exception. uuid (str):
 UUID of the message that caused the exception to raise. routing_key (str):
 Which routing key was used. body (str):
 Body of the exception - the longer text. tb (str, default None):
 Traceback (stacktrace)v of the exception. """

        # get informations about message
        msg = e.message if hasattr(e, "message") else str(e)
        exception_type = str(e.__class__)
        exception_name = str(e.__class__.__name__)

        print "Sending exception %s: %s for UUID %s." % (
            exception_name,
            msg,
            uuid
        )

        self.sendMessage(
            self.output_exchange,
            routing_key,
            str(body),
            properties=pika.BasicProperties(
                content_type="application/text",
                delivery_mode=2,
                headers={
                    "exception": msg,
                    "exception_type": exception_type,
                    "exception_name": exception_name,
                    "traceback": tb,
                    "UUID": uuid
                }
            )
        )