1.程式員在開發過程中,經常會對可能發生異常的代碼段進行異常捕獲,為便于追蹤問題,需要将異常資訊列印到日志檔案或記錄到日志表中。
舉例:
/**
* 測試異常捕獲機制
* @author shixiangcheng
* 2019-12-02
*/
public class Test {
public static void main(String [] args) throws Exception{
try{
double a=1/0;//執行到目前行将報錯
}catch(Exception e){
//捕獲異常,隻能将錯誤資訊列印到控制台,不便于上線後的跟蹤
e.printStackTrace();
}finally{
}
}
}
如上所示代碼,隻能将異常資訊列印到控制台,不便于上線後的問題跟蹤。可以做如下修改:
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
/**
* 測試異常捕獲機制
* @author shixiangcheng
* 2019-12-02
*/
public class Test {
public static void main(String [] args) throws Exception{
try{
double a=1/0;//執行到目前行将報錯
}catch(Exception e){
//捕獲異常
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
e.fillInStackTrace().printStackTrace(printWriter);
//将異常資訊轉換為字元串輸出
System.out.println("result= "+result.toString());
}finally{
//記錄日志(包含異常資訊)
}
}
}
執行結果:
result= java.lang.ArithmeticException: / by zero
at com.anji.ajdp.Test.main(Test.java:20)
上圖代碼中将異常資訊轉換到字元串中,便于列印到日志檔案或記錄到表裡。
歡迎大家積極交流學習心得。據說給我點贊的人最美了。贊贊贊。