在日常開發時,經常會遇到代碼拋異常后,需要把異常信息保存到數據庫或者上傳到雲服務器做cache分析。這時候就需要獲取異常的堆棧信息(詳細錯誤信息)。
有的人用e.getMessage()
來獲取異常信息,但是這樣獲取到的信息內容並不全,而且有時候為空。我們可以用下面方法來獲取。
public static String getStackTrace(Throwable throwable){
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
try {
throwable.printStackTrace(pw);
return sw.toString();
} finally {
pw.close();
}
}
使用也很簡單:
public static void test() {
try {
int i = 0;
int m = 10 / i;
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println("------調皮的分割線------");
System.out.println(ExceptionUtil.getStackTrace(e));
}
}
我們看下打印結果:
轉載於:https://blog.csdn.net/q649381130/article/details/77182346