簡體   English   中英

如何從沒有printStackTrace的異常中獲取stackTrace?

[英]How to get the stackTrace from an exception without printStackTrace?

不使用printStackTrace()是否有可能從異常中獲取整個跟蹤? 原因之一是因為我使用CheckStyle並收到一條難看的消息。 僅調用toString()不夠的。 我想獲取完整的消息,因為我需要通過電子郵件發送給我。

目前,我正在做

 StringWriter e = new StringWriter();
 exception.printStackTrace(new PrintWriter(e));

-避免使用printStackTrace()跟蹤,而改用log4j。

否則,我可以在那里禁用CheckStyle

如果要獲取錯誤詳細信息,請嘗試使用Apache Commons Lang api

有一個ExceptionUtils類。 您可以使用getFullStackTrace

你有沒有嘗試過?:

Throwable thr = e.getStackTrace();
StackTraceElement[] lines = thr.getStackTrace();

從那里開始工作。 另外,看看上面鏈接javadocs Oli

您可以從當前線程獲取堆棧跟蹤,請檢查以下內容:

Thread.currentThread().getStackTrace()

嘗試此操作,您將能夠在沒有檢查樣式錯誤的情況下打印堆棧跟蹤。

import org.apache.commons.lang.exception.ExceptionUtils;

String errorMessage = ExceptionUtils.getFullStackTrace(exception);  
logger.debug(errorMessage);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM