天天看點

将異常資訊Exception轉為String字元串列印輸出

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)
           

上圖代碼中将異常資訊轉換到字元串中,便于列印到日志檔案或記錄到表裡。

歡迎大家積極交流學習心得。據說給我點贊的人最美了。贊贊贊。

繼續閱讀