Obtener mensajes detallados de excepciones encadenadas de Java

Me gustaría saber cómo podría hacer una "final".Exception, que contiene un mensaje de detalle con todos los mensajes de detalle de una serie de excepciones encadenadas.

Por ejemplo, supongamos un código como este:

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);
}

No estoy interesado en la plenastackTrace, pero solo en los mensajes que escribí. Quiero decir, me gustaría tener un resultado como este:

java.lang.Exception: THIRD EXCEPTION + SECOND EXCEPTION + FIRST EXCEPTION

Respuestas a la pregunta(5)

Su respuesta a la pregunta