Get detail messages of chained exceptions Java

chaining, exception, java

Solution

I think what you need is:

public static List<String> getExceptionMessageChain(Throwable throwable) {
    List<String> result = new ArrayList<String>();
    while (throwable != null) {
        result.add(throwable.getMessage());
        throwable = throwable.getCause();
    }
    return result; //["THIRD EXCEPTION", "SECOND EXCEPTION", "FIRST EXCEPTION"]
}

Problem

I'd like to know how I could throw a "final" `Exception`, containing a detailed message with all the detailed messages of a number of chained exceptions. For example suppose a code like this: ``` try { try { try { try { //Some error here } catch (Exception e) { throw new Exception("FIRST EXCEPTION", e); } } catch (Exception e) { throw new Exception("SECOND EXCEPTION", e); } } catch (Exception e) { throw new Exception("THIRD EXCEPTION", e); } } catch (Exception e) { String allMessages = //all the messages throw new Exception(allMessages, e); } ``` I'm not interested in the full `stackTrace`, but only in the messages, I wrote. I mean, I'd like to have a result like this: ``` java.lang.Exception: THIRD EXCEPTION + SECOND EXCEPTION + FIRST EXCEPTION ```

Original source