[ACCEPTED]-How do I append to a Java exception?-stack-trace
Exceptions can be chained:
try {
...
} catch (Exception ex) {
throw new Exception("Something bad happened", ex);
}
It makes original 3 exception the cause of the new one. Cause of 2 exception can be obtained using getCause()
, and calling 1 printStackTrace()
on the new exception will print:
Something bad happened ... its stacktrace ... Caused by: ... original exception, its stacktrace and causes ...
Typically you throw a new exception which 7 includes the old exception as a "cause". Most 6 exception classes have a constructor which 5 accept a "cause" exception. (You can get 4 at this via Throwable.getCause()
.)
Note that you should almost 3 never be catching just Exception
- generally you 2 should be catching a more specific type 1 of exception.
Just use a different constructor:
Exception(String message, Throwable cause)
The message 3 is your "two cent" and you include the catched 2 exception, which will be shown in a stacktrace 1 printout
You can add the underlying cause to a newly 1 created exception:
throw new Exception("Failed to process input ["
+ ((null == input) ? "null" : input)
+ "] at index " + i + ": " + Arrays.toString(input_array)
+ "\n" + e.getMessage(), e);
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.