Simple Exception Response for AJAX debugging

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from django.conf import settings
from django.http import HttpResponseServerError

class AJAXSimpleExceptionResponse:
    def process_exception(self, request, exception):
        if settings.DEBUG:
            if request.META.get('HTTP_X_REQUESTED_WITH', None) == 'XMLHttpRequest':
                import sys, traceback
                (exc_type, exc_info, tb) = sys.exc_info()
                response = "%s\n" % exc_type.__name__
                response += "%s\n\n" % exc_info
                response += "TRACEBACK:\n"    
                for tb in traceback.format_tb(tb):
                    response += "%s\n" % tb
                return HttpResponseServerError(response)

Comments

luftyluft (on March 19, 2008):

Nice idea - thanks!

#

skabber (on March 19, 2008):

This will be great. Although I have gotten good at finding the exception in the source of the pretty error pages :)

#

robhudson (on March 20, 2008):

Works great. Thanks!

#

trevor (on March 23, 2008):

You can also document.write() on 500 in the javascript to display the error instead of trying to read it in firebug.

#

kioopi (on April 15, 2008):

I use it, too.

I use the Poster firefox add-on for a lot of Ajax-Debugging, but it seems buggy for HTTP_ACCEPT headers.

Thanks.

#

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.