'Processing for any otherwise uncaught exceptions (those that will
generate HTTP 500 responses). Can be overridden by subclasses who want
customised 500 handling.
Be *very* careful when overriding this because the error could be
caused by anything, so assuming something like the database is always
available would be an error.'

def handle_uncaught_exception(self, request, resolver, exc_info):

    if settings.DEBUG_PROPAGATE_EXCEPTIONS:
        raise
    logger.error(u'Internal    Server    Error:    %s', request.path, exc_info=exc_info, extra={u'status_code': 500, u'request': request})
    if settings.DEBUG:
        return debug.technical_500_response(request, *exc_info)
    if (resolver.urlconf_module is None):
        six.reraise(*exc_info)
    (callback, param_dict) = resolver.resolve500()
    return callback(request, **param_dict)
