If you re-throw an exception within the catch block, and that exception is caught inside of another catch block, everything executes according to the documentation. I recommend using catch(exception ex) when you plan to reuse the exception variable only, and catch (alone) in other cases. Just a matter of style for the second use case, but if personally.

Please forgive my inability to paste the actual code, but what he did was. I think that this only works if you raise and then catch the exception, but not if you try getting the traceback before raising an exception object that you create, which you might want to do in.