您当前的位置: 首页 >  慌途L

Exception | 优雅的输出Exception异常信息

慌途L 发布时间:2021-11-18 20:45:00 ,浏览量:4

这两种输出方式一直在用,趁着无聊把这个发出来,顺便自己记录一下,大家视不同情况使用。

通常e.getMessage()并不能获取全部的错误信息,需要用到e.printStackTrace()查看完整错误信息,但是这个方法是void 只能在控制台输出。

注意:e.printStackTrace()要尽量少用或不用,可能会导致锁死

有两种方式推荐 1.logger方式

一个直接通过logger打印出来,这个方法是最简便的

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
logger.error("系统异常:",e);
2.通过工具类转换成字符串

直接上代码:

import java.io.PrintWriter;
import java.io.StringWriter;

/**
 * 描述:异常工具类
 * 创建人:慌途L
 */
public class ExceptionUtil {
    private ExceptionUtil(){}

    /**
     * 获取异常信息
     */
    public static String getStackTraceInfo(Exception e) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        try {
            e.printStackTrace(pw);
            pw.flush();
            sw.flush();
            return sw.toString();
        } catch (Exception ex) {
            return "异常信息转换错误";
        } finally {
            try {
                pw.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            try {
                sw.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

}
关注
打赏
1688896170
查看更多评论

慌途L

暂无认证

  • 4浏览

    0关注

    118博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0469s