> Well, i am wondering why you are extracting the exc_info() rather than
> saving off the exception object itself:
> try:
> f()
> except Exception, e
> saved = e
> try:
> g()
> except:
> pass # ignore
> raise e
>
> I have not tested this on 3.0 but i am assuming this should work. If it
> doesn't try using finally:
>
> try:
> f()
> except Exception, e
> saved = e
> try:
> g()
> except:
> pass # ignore
> finally:
> raise e
You miss the traceback if you re-raise the exception. It produces this output:
$ python b.py
Traceback (most recent call last):
File "b.py", line 17, in <module>
raise e
Exception: f
Instead of this:
$ python a.py
Traceback (most recent call last):
File "a.py", line 9, in <module>
f()
File "a.py", line 3, in f
raise Exception("f")
Exception: f
When an exception is raised, traceback is taken from the current stack
unless a traceback object is provided to it. I'm using sys.exc_info()
to get the trackback of the original exception and using it when
re-raising the exception.
http://docs.python.org/reference/simple_stmts.html#raise
And there is no need to add "saved = e" as the exception is already
available as variable e.
Anand
_______________________________________________
BangPypers mailing list
[email protected]
http://mail.python.org/mailman/listinfo/bangpypers