[英]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.