获取链接异常 Java 的详细消息

2022-09-01 14:16:43

我想知道如何抛出一个 “final” ,其中包含一条详细的消息,其中包含许多链接异常的所有详细消息。Exception

例如,假设有一个这样的代码:

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

我对完整的不感兴趣,而只对消息感兴趣,我写了。我的意思是,我希望得到这样的结果:stackTrace

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

答案 1

我认为你需要的是:

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"]
}

答案 2

你可以更好地使用它的方式,将以前的与你正在的新合并:message()Exceptionmessage()Exceptionthrow

      } catch (Exception e) {
          throw new Exception("FIRST EXCEPTION" + e.getMessage(), e);
      }