NetBeans 和停止/中断所有异常?

2022-09-04 22:15:26

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

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

我已经选中了“在未捕获的异常时停止”框,该框可以在选项中找到 - >Java调试器 - >在未捕获的异常上停止,但这无济于事。

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

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

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

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


答案 1

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

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

更新:

我不确定这是否适用于Android,但您可以尝试输入“新断点”。输入要在异常中断的新断点时,需要知道确切的包/类异常名称。例如,如果要捕获 NullPointerException,请转到调试>>新建断点以创建新的断点,然后在“断点属性”对话框的“异常类名”字段中输入 java.lang.NullPointerException。选择是中断捕获的、未捕获的还是两者的异常,如果类/项目中发生这种类型的异常,它将命中断点。


答案 2

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