【问题标题】:NetBeans and stop/break on all Exceptions?NetBeans 并停止/中断所有异常?
【发布时间】:2011-08-31 21:42:15
【问题描述】:

我使用 NetBeans 作为开发 Android 的 IDE。

但是,当我遇到异常时,Netbeans 不会像我预期的那样中断异常。

我已经选中了可以在 Options --> Java Debugger --> Stop on uncaught exceptions 中找到的“停止未捕获的异常”框,但这并没有帮助。

此外,我在哪里可以看到实际的异常消息?我什么都没看到。我不知道异常发生的地点和时间,只是它确实发生了。

我在 netbeans.org 网站上阅读了一些关于 6.9.1 中已修复的错误,但在我的 7.0 中似乎没有修复。

调试窗口根本没有说任何有用的东西,给出了某种形式的堆栈跟踪,因为它没有指定我自己的任何代码,所以毫无意义。

我从 Eclipse 切换,因为 IDE 很烂,NetBeans 更精简,但调试需要修复才能有用。

【问题讨论】:

  • 当我真的需要这个问题的答案!
  • 以防万一有人来这里需要中断本机代码中的异常,在调试控制台窗口中,输入catch throw 中断任何抛出的异常,输入catch catch 中断任何捕获的异常.阅读GDB documentation 以了解those commands 以了解特定类型的异常。

标签: java android exception netbeans


【解决方案1】:

我在使用 netbeans 时也遇到了这个问题。要获取异常消息,我使用 try-and-catch。在 catch() 语句中,调用包含一些代码的函数并在其上放置断点。然后当给定异常时,将调用 catch 语句中的断点,您可以从 Exception 对象中读取信息(错误消息、堆栈等)。

try
{
    // Doing something here
}
catch (Exception e1)
{
    // This is called when an exception occurs
    doSomething();   /// Put breakpoint here
}

更新:

我不确定这是否适用于 android,但您可以尝试输入“新断点”。当输入一个新的断点来中断一个异常时,你需要知道 确切的包/类异常名称。例如,如果你想捕捉一个 NullPointerException,然后你去Debug >> New Breakpoint创建一个New Breakpoint并输入 将 java.lang.NullPointerException 放入 Exception Class Name 字段中 断点属性对话框。选择是否在捕获的、未捕获的或两者兼有的异常上中断,如果在类/项目中发生这种类型的异常,它将触发断点。

【讨论】:

  • thx... 但是必须有一种方法使它的行为类似于 Visual Studio 中的行为,即它在异常行上中断?
  • Thx,但这不是我想要的不幸=(我需要它在任何发生异常的地方中断,而不需要我设置断点。最后,我切换回 Eclipse...= (
【解决方案2】:

我有这样的行为,我的源文件生成了不在“默认包”中的异常。当我将所有内容移至“默认包”时,它开始正常工作并自动停止异常。

【讨论】:

  • 这不是解决方案。这是一种解决方法,可能不适用于许多情况。尤其适用于 Android 开发。
【解决方案3】:

这个答案实际上也回答了这个问题: https://stackoverflow.com/a/2671390/415551

引用用户 Finbarr:

转到调试 > 新断点(或者 CTRL+SHIFT+F8)。更改 在右上角的下拉菜单中将断点类型设置为异常。 在异常类字段中键入 java.lang.NullPointerException。 选择是否在捕获、未捕获或两者兼有时中断。

调试您的代码并在 抛出异常。

只需将java.lang.NullPointerException 更改为java.lang.Exception 即可解决任何错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 2015-02-07
    • 2011-09-18
    • 2022-01-01
    • 1970-01-01
    • 2014-11-25
    • 2010-12-30
    • 1970-01-01
    相关资源
    最近更新 更多