Commit 55c9e98d authored by Adrian Holovaty's avatar Adrian Holovaty
Browse files

Fixed #1852 -- Improved TemplateSyntaxError to display the original exception...

Fixed #1852 -- Improved TemplateSyntaxError to display the original exception if str() of the exception raises an exception in itself. Thanks, nnorwitz@google.com

git-svn-id: http://code.djangoproject.com/svn/django/trunk@2906 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 51f6a944
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ answer newbie questions, and generally made Django that much better:
    Robin Munn <http://www.geekforgod.com/>
    Nebojša Dorđević
    Sam Newman <http://www.magpiebrain.com/>
    Neal Norwitz <nnorwitz@google.com>
    oggie rob <oz.robharvey@gmail.com>
    pgross@thoughtworks.com
    phaedo <http://phaedo.cx/>
+14 −1
Original line number Diff line number Diff line
@@ -91,7 +91,20 @@ libraries = {}
builtins = []

class TemplateSyntaxError(Exception):
    pass
    def __str__(self):
        try:
            import cStringIO as StringIO
        except ImportError:
            import StringIO
        output = StringIO.StringIO()
        output.write(Exception.__str__(self))
        # Check if we wrapped an exception and print that too.
        if hasattr(self, 'exc_info'):
            import traceback
            output.write('\n\nOriginal ')
            e = self.exc_info
            traceback.print_exception(e[0], e[1], e[2], 500, output)
        return output.getvalue()

class TemplateDoesNotExist(Exception):
    pass