java使用--Exception 异常信息 StackTraceElement

本文介绍了如何在Java中避免使用e.printStackTrace()或log4j直接打印异常,而是通过StackTraceElement将异常信息拼接成一行,提高日志检索效率。提供了相关代码示例并给出了GitHub源码链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在某些场景下,直接使用e.printStackTrace(); 或者使用log4j打印异常,在日志收集系统中不好检索。

下面方法将异常拼接成一行,使用 StackTraceElement。

 

package com.ajl.usage.exception;

/**
 * @Author anjinlong
 * @create 2020-10-02 17:05
 * @description description
 */
public class ExceptionUsage {

    public static void main(String[] args) {
        errMsg();
    }

    public static void errMsg() {
        String str = null;
        try {
            str.length();
        } catch (Exception e) {
            StringBuffer errmsg = new StringBuffer();
            errmsg.append(e.getMessage()).append("\n");
            StackTraceElement [] stackTraceElements = e.getStackTrace();
            for(StackTraceElement stackTraceElement : stackTraceElements){
                errmsg.append(stackTraceElement.toString()).append("\n");
            }
            System.out.println(errmsg);
        }

    }
}

 

githup地址:https://github.com/jinlong-an/explore-java/blob/master/java-usage/src/main/java/com/ajl/usage/exception/ExceptionUsage.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值