`

getStackTrace

    博客分类:
  • java
阅读更多
private String getStackTrace(Throwable throwable){
        StringWriter sw = new StringWriter();
        try(PrintWriter pw = new PrintWriter(sw)){
            throwable.printStackTrace(pw);
            return sw.toString();
        }
    }


            StringBuffer sb = new StringBuffer();
            sb.append(e.getMessage().concat("\n"));
            Arrays.stream(e.getStackTrace())
                    .filter(t->t.toString().contains("com.xxx"))
                    .forEach(t->sb.append(t.toString().concat("\n")));
            String errorStack = sb.toString();
分享到:
评论

相关推荐

    详解Java 打印堆栈的几种方法

    StackTraceElement[] stackElements = ex.getStackTrace(); if (stackElements != null) { for (int i = 0; i ; i++) { System.out.print(stackElements[i].getClassName()+"/t"); System.out.print...

    Java中获取当前函数名、类名、当前类的文件名.doc

    - 解析: 在JDK 5及更高版本中,`Thread`类提供了`getStackTrace()`方法来获取当前线程的堆栈跟踪信息。通过索引访问可以获取到当前类的名称。 - 示例: ```java public class MyClass { public void myMethod() ...

    android demo,test_function_linenumber_print,android函数名和行号的打印

    要在Android代码中打印函数名和行号,通常可以使用`Log`类的`d()`方法,并结合`new Exception().getStackTrace()[2]`来获取当前调用栈的第二层信息(因为第一层通常是`getStackTrace()`本身)。例如: ```java try ...

    中小公司人事管理系统

    e.getStackTrace(); log.error("session开启失败"); throw e; } return s; } public static void closesession()throws Exception{ s=sessionThread.get(); try{ if(s!=null){ s.close...

    Android显示Log信息(带行号)

    Log.d("TAG", "这是带有行号的Log: " + new Exception().getStackTrace()[2].getLineNumber()); ``` 这样,每次输出Log时都会附加当前行的行号。 2. 自定义Logger工具类: 为了方便使用,可以创建一个名为`...

    Android下各语言加callStack示例

    在Java中,我们可以利用`Thread.currentThread().getStackTrace()`方法来获取当前线程的调用堆栈信息。这个方法返回一个`StackTraceElement`数组,包含了每个栈帧的信息,如类名、方法名和行号。为了打印这些信息,...

    java功能代码

    利用`Thread.currentThread().getStackTrace()[1].getMethodName()`可以获取当前线程堆栈跟踪中第二个元素(即当前方法的父方法)的方法名。这在调试、日志记录或实现某些特定功能时非常有用。注意,由于`...

    日志打印工具-资源分必选-到博客中复制代码

    StackTraceElement[] sts = Thread.currentThread().getStackTrace(); if (sts == null) { return null; } for (StackTraceElement st : sts) { if (st.isNativeMethod()) { continue; } if (st....

    调用堆栈的类

    `getStackTrace`会进行堆栈回溯并解析符号,返回一个包含每个帧信息的字符串向量。 需要注意的是,这个类的实现会依赖于特定平台的API和库,如在Linux下使用`backtrace_symbols`,在Windows下可能需要使用`...

    java实用例子.pdf

    可以通过`Thread.currentThread().getStackTrace()`获取调用栈信息,然后选取相应位置的方法名: ```java String methodName = Thread.currentThread().getStackTrace()[1].getMethodName(); ``` 4. **将字符串...

    Java Exception Handling 内容.ppt

    `printStackTrace`直接打印异常及其发生时的堆栈跟踪,`getStackTrace`返回堆栈跟踪的数组,而`getMessage`返回异常的描述信息。 15.10 声明新异常类型 开发者可以创建自定义异常类来表示特定的错误条件,它们通常...

    Java小片段

    - `Thread.currentThread().getStackTrace()`返回当前线程的堆栈跟踪元素数组,可以通过索引访问具体的方法名。例如: ```java String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();...

    StackWalker

    与传统的`Thread.getStackTrace()`方法相比,StackWalker提供了更多的控制和优化,例如可以选择性地获取堆栈信息、过滤掉不感兴趣的类或者方法等。 StackWalker的主要方法包括: 1. `getStackFrames()`: 返回一个...

    20个常用的Java程序块.doc

    可以通过`Thread.currentThread().getStackTrace()`获取当前线程的堆栈跟踪,然后从中提取方法名。 ```java String methodName = Thread.currentThread().getStackTrace()[1].getMethodName(); ``` ### 4. 字符串...

    一个简单的获取异常信息的例子,包括行号

    throw new CustomAssertionException("Assertion failed", getStackTrace()); } } private static StackTraceElement[] getStackTrace() { // 获取并处理堆栈跟踪,可能还包括其他详细信息 } } class ...

    间接调用Log4j的日志功能导致类名输出错误解决方案

    例如,可以使用`Thread.currentThread().getStackTrace()`获取堆栈信息,然后找到日志方法被调用的位置,获取到正确的类名。 ```java public class MyLoggerFactory { public static Logger getLogger(Class<?> ...

    Java中常用的代码汇总-WPS Office.pdf

    使用 `Thread.currentThread().getStackTrace()[1].getMethodName()` 方法可以得到当前方法的名字。 4. 转字符串到日期 使用 `java.text.DateFormat.getDateInstance().parse()` 方法可以将字符串转换为日期对象,...

Global site tag (gtag.js) - Google Analytics