明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 320万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
复制代码
/**
     * 过滤不重要的StackTrace,只保留与项目相关的StackTrace
     *
     */
    public static String getExceptionStackTrace(Throwable e) {
        return getExceptionStackTrace(e, "com\\.(xiaonuo|runqin|sdk|onecode).*", "xiaonuo|baomidou");
    }

    /**
     * 过滤不重要的StackTrace,只保留与项目相关的StackTrace
     *
     * @throws Exception
     */
    public static String getExceptionStackTrace(Throwable e, String includesRegex, String excludes) {
        StringWriter sw = new StringWriter();
        e.printStackTrace(new PrintWriter(sw));
        String result = sw.toString();
        boolean[] firstTrackLine = new boolean[]{true};
        if (includesRegex != null) {
            result = (new RegexReplace(result, "(    at )(.*)(\r?\n)") {
                @Override
                public String getReplacement(Matcher matcher) {
                    if (firstTrackLine[0]) {
                        firstTrackLine[0] = false;
                        return matcher.group();
                    }
                    else if (matcher.group(2).matches(includesRegex))
                        return matcher.group();
                    else
                        return "";
                }
            }).replaceAll();
        }
        return result;
    }
复制代码
import java.util.regex.Matcher;

复制代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;

abstract public class RegexReplace {
    private String _regex,_source;
    private int _flags=0;//Pattern.CASE_INSENSITIVE|Pattern.DOTALL;
    public RegexReplace(String source,String regex){
        this._regex=regex;this._source=source;
    }
    public RegexReplace(String source,String regex,int flags) {
        this(source,regex);
        this._flags=flags;
    }

    abstract public String getReplacement(Matcher matcher);

    public String replaceAll(){
        Pattern p=Pattern.compile(_regex,_flags);
        Matcher m=p.matcher(_source);
        StringBuffer result=new StringBuffer();
        while(m.find()){
            // System.out.println(content.substring(m.start(),m.end()));
            // System.out.println(m.group(2));
            String replacement=getReplacement(m);
            if(replacement!=null){
                if(replacement.indexOf('$')>=0)
                    replacement=replacement.replace("$","\\$");
                //replacement=EasyStr.ReplaceAll(replacement,"$","\\$",false);
                m.appendReplacement(result,replacement);
            }
        }
        m.appendTail(result);
        return result.toString();
    }

    public String replaceFirst(){
        Pattern p=Pattern.compile(_regex,_flags);
        Matcher m=p.matcher(_source);
        StringBuffer result=new StringBuffer();
        if(m.find()){
            // System.out.println(content.substring(m.start(),m.end()));
            // System.out.println(m.group(2));
            String replacement=getReplacement(m);
            if(replacement!=null){
                if(replacement.indexOf('$')>=0)
                    replacement=replacement.replace("$","\\$");
                //System.out.println(replacement);
                m.appendReplacement(result,replacement);
            }
        }
        m.appendTail(result);
        return result.toString();
    }
}
复制代码

 

调用:String sMsg = CommonExceptionUtil.getExceptionStackTrace(e);

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2023-06-28 Tomcat 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
2023-06-28 Tomcat通过setenv.bat指定jdk和jre(相对路径)
2023-06-28 tomcat 协议处理程序初始化失败
2023-06-28 Linux 系统使用war包部署iServer(中间件:Tomcat)[Windows 相同操作]
2022-06-28 MySQL获取分组中的第一条数据和最后一条数据
2020-06-28 wpf 全局异常捕获处理
2007-06-28 通过HttpWebResponse和HttpWebRequest 获取http地址上的图片
点击右上角即可分享
微信分享提示