1. 程式人生 > 實用技巧 >Java獲取到異常資訊進行儲存(非Copy)

Java獲取到異常資訊進行儲存(非Copy)

吐槽:不知道從什麼時候開始,各大部落格網站的文章開始各種複製貼上,想好好找一個解決方法,搜尋出來的部落格基本上千篇一律,主要是能解決問題也還行,還解決不了問題這就噁心了....
所以被迫自己寫一篇文章,然後讓有同樣需求的童鞋找到正確的解決方式了。

        首先說我們可能都會遇上這樣的需求,進行try catch捕獲到異常,然後將異常資訊儲存到到DB中,而jdk自帶的e.printStackTrace();是直接將異常資訊進行輸出,沒法進行儲存。但是很友好得lang包出現了,提供了一個方法可以讓我們捕獲到異常資訊。如下:

ExceptionUtils.getStackTrace(e)

        該方法來自package org.apache.commons.lang3.exception;所以需要呼叫這個方法的童鞋需要用mvn引入對應的jar或者直接匯入jar。
當然我們也可以不用匯入jar包,直接將ExceptionUtils.getStackTrace(e);實現程式碼扒下來,引入自己的專案中。如下:

public static String getStackTrace(final Throwable throwable) {
    final StringWriter sw = new StringWriter();
    final PrintWriter pw = new PrintWriter(sw, true);
    throwable.printStackTrace(pw);
    return sw.getBuffer().toString();
}

        該方法的返回值是一個String,所以我們直接呼叫這個方法然後進行儲存就ok了!!!