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.

Diez
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to