在Eclipse IDE中调试Java时将异常作为表达式捕获

时间:2009-02-25 20:04:16

标签: java eclipse debugging exception

Java开发人员的日常调试情况是抛出Exception,然后您需要深入调试器以找出抛出的内容。通常,您会尝试在抛出异常之前设置一些断点,并希望您能够确定导致该异常的情况。

在Eclipse中,断点可以定义一个表达式,只有当变量x等于值y时才会触发断点。我的问题是,是否可以定义某种全局表达式,一旦抛出异常,它就被调试器捕获,允许程序员立即检查所有变量?理想情况下,您还没有遇到catch块,Eclipse将捕获引发的异常并停止执行而不更改堆栈内容。

这可能还是受JVM限制?

2 个答案:

答案 0 :(得分:37)

另一个例子: Eclipse Tip: Breakpoint on Exception

Eclipse允许您根据异常发生的位置设置断点 您可以通过调试窗口中的“j!” http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png图标 访问该选项(即“ Breakpoint View “)。

Add Java exception Window

官方帮助主题“ Add Java Exception Breakpoint ”对此有更多了解。

  • Uncaught Exception选项是在未被捕获的位置抛出与断点相同类型的异常时暂停执行。
  • Caught Exception选项是在捕获的位置抛出与断点相同类型的异常时暂停执行。
  • 不要忘记 Exception Breakpoint Suspend on Subclass of this Exception
    在遇到异常类型的子类时暂停执行 例如,如果RuntimeException的异常断点配置为在子类上挂起,则它也将由NullPointerException触发。

alt text

答案 1 :(得分:3)

http://agile.csc.ncsu.edu/SEMaterials/tutorials/eclipse-debugger/

特别是“5.0特殊断点和观看表达式”部分。