19

我有一个没有得到很好处理的异常。我在调试器中的一行,我手头有异常,但它不在我的代码中,所以我不能在那个时候记录它。所以我坐在调试器中,变量窗口中有异常,我试图弄清楚如何从中获取堆栈跟踪,以便我可以找到异常的来源并更好地处理它。

想法?

4

4 回答 4

10

Debug透视图中,显示Expressions视图。现在您可以添加一个表达式,说明您的变量e.printStackTrace()在哪里。e

或者,您可以将表达式更改为并在输出窗口中getStackTrace()展开StackTraceElement数组。Expressions

于 2012-10-08T13:41:24.010 回答
6

你为什么不创建一个异常断点?然后,在异常发生之前,您不必手动调试代码,而是只要最初抛出异常,调试器就会停止,您可以在调试器中看到实时堆栈跟踪。

于 2012-10-09T06:08:51.377 回答
2

我通常使用以下技巧。转到“表达式”视图并添加表达式e.printStackTrace()。如果您的应用程序在 Eclipse IDE 中运行,堆栈跟踪将打印到您的 STDERR,即 Eclipse 控制台。

于 2012-10-08T13:42:00.680 回答
2

如果您知道问题所在的行,您可以在代码中设置断点并观看“调试”选项卡,它将显示堆栈:

在此处输入图像描述

于 2018-10-30T13:38:33.637 回答