﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
11368	debug error reporter should include traceback for nested exceptions	John Firebaugh	nobody	"There are a number of place in the django codebase that trap Exception and then raise a new exception. This results in less-than-ideal debugging information being presented in the default error page; in particular, the traceback from the original exception is unavailable.

Most recently, I encountered this in the template renderer:

{{{
class DebugNodeList(NodeList):
    def render_node(self, node, context):
        try:
            result = node.render(context)
        except TemplateSyntaxError, e:
            if not hasattr(e, 'source'):
                e.source = node.source
            raise
        except Exception, e:
            from sys import exc_info
            wrapped = TemplateSyntaxError(u'Caught an exception while rendering: %s' % force_unicode(e, errors='replace'))
            wrapped.source = node.source
            wrapped.exc_info = exc_info()
            raise wrapped
        return result
}}}

When this wrapped TemplateSyntaxError is displayed in the default error page, the traceback ends at the 'raise wrapped' line; the only part of the original exception that is available is the message (""'RelatedManager' object is not iterable"" in my current case). This makes the source of the problem more difficult to determine. The traceback in wrapped.exc_info should be displayed in addition to, or instead of, the traceback currently displayed.

This was briefly [http://groups.google.com/group/django-developers/browse_thread/thread/9d36bba7fc2ffa62/c489cc9745ef8de8 discussed] (exactly 1 year ago) on django-developers. A [http://code.djangoproject.com/attachment/ticket/6537/6537.diff partial patch] was posted."		closed	Core (Other)	1.0		duplicate		glenn@…	Unreviewed	0	0	0	0	0	0
