我有一个例外,没有得到很好的处理。我在调试器中的一行,我手头有异常,但它不在我的代码中,所以我不能在那时记录它。所以我坐在调试器中,我的变量窗口中有异常,我正在试图弄清楚如何从中获取堆栈跟踪,这样我就可以找到异常发起的位置并更好地处理它。
想法?
答案 0 :(得分:9)
在Debug
透视图中,显示Expressions
视图。现在,您可以添加e.printStackTrace()
的表达式,其中e
是您的变量。
或者,您可以将表达式更改为getStackTrace()
并展开StackTraceElement
输出窗口中的Expressions
数组。
答案 1 :(得分:5)
为什么不创建Exception Breakpoint?然后,您不必手动调试代码,直到异常发生,而调试器只会在最初抛出异常时停止,您可以在调试器中看到 live stacktrace。
答案 2 :(得分:2)
我通常使用以下技巧。
转到“表达式”视图并添加表达式e.printStackTrace()
。堆栈跟踪将打印到您的STDERR,即如果您的应用程序在Eclipse IDE中运行,则打印到eclipse控制台。
答案 3 :(得分:1)