【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

posted @ 2022-05-11 20:27  逆火狂飙  阅读(279)  评论(0编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东