代码之家  ›  专栏  ›  技术社区  ›  Daryll David Dagondon

只显示我编写的Java类的堆栈跟踪元素

  •  1
  • Daryll David Dagondon  · 技术社区  · 6 年前

    enter image description here

    我只想要黄色的部分 具有蓝色字体的(可单击以标识引发异常的java类及其行号) 待打印 因为剩余的堆栈跟踪是多余的。

    我设法用以下方法显示这些堆栈跟踪:

    public static void displayStackStraceArray(StackTraceElement[] stackTraceElements) { 
        for (StackTraceElement elem : stackTraceElements) {
            System.err.println("\t"+elem.toString());
        }
    }
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   FThompson    6 年前

    正如JB Nizet在评论中指出的,您应该使用自己的特定软件包,而不是从android开始。

    public static final String PACKAGE_ROOT = "org.example.application";
    
    public static void displayStackStraceArray(StackTraceElement[] stackTraceElements) { 
        for (StackTraceElement elem : stackTraceElements) {
            if (elem.getClassName().startsWith(PACKAGE_ROOT)) {
                System.err.println("\t"+elem.toString());
            }
        }
    }
    
        2
  •  3
  •   Tim Biegeleisen    6 年前

    您可以检查每一个堆栈跟踪条目,以便在行尾提到您的类文件:

    public static void displayStackStraceArray(StackTraceElement[] stackTraceElements) { 
        for (StackTraceElement elem : stackTraceElements) {
            String line = elem.toString();
            // assuming the file is called Search_Task.java:
            if (line.matches(".*\\(Search_Task\\.java:\\d+\\)$")) {
                System.err.println("\t"+elem.toString());
            }
        }
    }