当前位置: 首页 > 知识库问答 >
问题:

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

阳枫涟
2023-03-14

如你所见,这些都是堆栈微量元素。我只希望打印带有蓝色字体的黄色部分(可单击以标识抛出异常的java类及其行号),因为其余的堆栈跟踪都是多余的。

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

public static void displayStackStraceArray(StackTraceElement[] stackTraceElements) { 
    for (StackTraceElement elem : stackTraceElements) {
        System.err.println("\t"+elem.toString());
    }
}

共有1个答案

禄烨然
2023-03-14

您可以在行尾检查每个堆栈跟踪条目是否提到了类文件:

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());
        }
    }
}
 类似资料:
  • 我试图在Google Play Store中调试我的应用程序的几个崩溃,但是Play Store中显示的堆栈跟踪显示的是Java文件名和行号,而不是直接引用我的Kotlin代码。我在Android Studio中查看了Java代码,但是行号不匹配。 为了查看Java代码,我转换成字节代码,然后反编译成Java。在Android Studio中还有一个更直接的选项“将Kotlin反编译为Java”,

  • 当Xdebug被激活时,只要PHP决定显示通知,警告,错误等,就会显示堆栈跟踪。堆栈跟踪显示的信息以及显示方式可以根据您的需要进行配置。 Xdebug在错误情况下显示的堆栈跟踪信息量相当保守(如果display.errors 在php.ini中设置为On)。这是因为大量的信息会减慢脚本的执行速度和浏览器中堆栈跟踪本身的渲染速度。但是,可以使堆栈轨迹以不同的设置显示更详细的信息。 堆栈跟踪中的变量

  • 问题内容: 有没有一种方法可以Throwable.printStackTrace(PrintStream s)打印出完整的堆栈轨迹,以便我能看到的最后一行”… 40 more”? 问题答案: 你不需要 该信息存在于堆栈跟踪中的其他位置。来自的文档printStackTrace(): 注意存在包含字符的行。这些行指示此异常的堆栈跟踪的其余部分与由该异常(“封闭”异常)引起的异常的堆栈跟踪的底部指示的

  • 我有一个ASP.NET Core3.0Web API托管在Azure应用服务上。我正在试图弄清楚为什么它会在一个控制器操作方法中抛出一个500内部服务器错误。我已经建立了应用程序洞察力,我可以在Azure Portal上的“失败”页面上看到有500个异常。但是,我看不到它们的堆栈跟踪。在Application Insights或Azure Monitor中打开堆栈跟踪报告需要做些什么吗。附注。即使

  • 问题内容: 当您在Java中使用RMI时,收到异常时将在其前面添加远程堆栈跟踪,如下所示: 那种堆栈跟踪“伪造”如何完成? 我想要什么(除了被迭代)?好吧,如果我能这样做的话,它将对我有帮助: 并使其成为引发日志记录的目的,在堆栈跟踪中也将引发异常(并且方法在链的下游)。 问题答案: 这很容易: Throwable有方法和。 从我的一个项目(非开源,但也许有一天我将打开远程调用引擎): 为了您的方

  • 这可能在JUnit文档中已经很明显了,但似乎找不到它,也不记得是否有我将要描述的解决方案。 然后我们得到这个: 现在我得到了一些几乎没用的东西。但是,我希望看到完整的enchilada,整个堆栈跟踪。但是我似乎没有找到使用JUnit这样做的方法,除了在catch/try块中添加测试用例以将堆栈跟踪打印到标准错误(难看): 我讨厌这样做,因为它污染了(IMO)我的测试用例逻辑;而且它是手动的,我必须