How do I rethrow an exception that contains information about an original exception?

vlad-ardelean picture vlad-ardelean · May 11, 2012 · Viewed 15.2k times · Source

So I basically have to isolate 2 layers of the application from one another by exceptions.

I have this WLST 12c script (python 2.2), that goes like

try:
    something something...
except java.lang.UnsuportedOpperationException, (a, b):
    pass
except java.lang.reflect.UndeclaredThrowableException, (a, b):
    pass

I'd like to be able to re-raise one of my own types of exception, that contains a message about what caused the previous exception (and no, i don't know what the a and b parameters are, but i'm guessing one of them should be the exception description).

I'm a java guy myself, so i am looking forward to something like

try {
    something something...
} catch (Exception e) {
    throw new RuntimeException(e, "something horrible happened");
}

Answer

normaldotcom picture normaldotcom · Jun 3, 2014

Although this is an old post, there is a much more simple answer to the original question. To rethrow an exception after catching it, just use "raise" with no arguments. The original stack trace will be preserved.