How do I attach to a Java exception?
I am a novice and general exception to Java
In my previous days of C / Perl programming, when I wrote a library function, a boolean flag returned an error, plus a string of human friendly (or programmer friendly) error messages Java and C have exceptions, which is convenient because they include stack traces
I often find that when I catch an exception, I want to add my two cents and pass it on
How can this be done? I don't want to discard the whole stack trace... I don't know the depth and reason of the failure
I have a utility library that converts stack tracks (from exception objects) to strings I think I can attach it to my new exception message, but it seems to be a hacker
The following is an example method Suggestions?
public void foo(String[] input_array) { for (int i = 0; i < input_array.length; ++i) { String input = input_array[i]; try { bar(input); } catch (Exception e) { throw new Exception("Failed to process input [" + ((null == input) ? "null" : input) + "] at index " + i + ": " + Arrays.toString(input_array) + "\n" + e); } } }
Solution
Exceptions can be linked to:
try { ... } catch (Exception ex) { throw new Exception("Something bad happened",ex); }
It makes the original exception a new cause You can use getcause() to get the cause of the exception and call printstacktrace() to print the new exception:
Something bad happened ... its stacktrace ... Caused by: ... original exception,its stacktrace and causes ...