annotate a traceback

Diez B. Roggisch deets at
Thu Oct 29 16:29:30 CET 2009

Robin Becker wrote:

> I want to annotate a traceback in routine A which is raised in B. Useful
> information in A is not available in B
> I propose to use something like
> def A(info):
>      try:
>          B()
>      except:
>          t,v,b=sys.exc_info()
>          v.args = (' '.join(map(str,v.args))+', info=%r' % info,)
>          raise
> is this a reasonable approach?

I think a custom exception that takes the old sys.exc_info() and
encapsulates it would be better. Java has this, and it allows you to convey
different information without losing the original traceback.


More information about the Python-list mailing list