【java】将异常栈内信息合并成字符串的函数
【功能】
将ex.printtStackTance()输出的内容转化为字符串。
【适用场景】
将不易跟踪的异常存贮到DB或是文件里。
【代码】
package com.hy.lab.gotminus; import java.io.PrintWriter; import java.io.StringWriter; public class DbConnector extends Thread{ public static void main(String[] args){ try { int n = Integer.parseInt("1A"); }catch(Exception ex){ String traceInfo=getStackTraceInfo(ex); System.out.println(traceInfo); } } /** * 此函数用户将异常栈全部合并成字符串,适合将难以跟踪的异常存储起来 * @param ex 异常 * @return 异常栈组合成的字符串 */ public static String getStackTraceInfo(Throwable ex){ StringWriter sw=new StringWriter(); try(PrintWriter pw=new PrintWriter(sw);){ ex.printStackTrace(pw); return sw.toString(); } } }
【输出】
java.lang.NumberFormatException: For input string: "1A" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:668) at java.base/java.lang.Integer.parseInt(Integer.java:786) at com.hy.lab.gotminus.DbConnector.main(DbConnector.java:9) Process finished with exit code 0
END