2011-08-31 92 views
13

因此,我使用NetBeans作为开发Android的IDE。NetBeans并停止/中断所有异常?

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

我已经勾选了可在选项 - > Java调试器 - >停止未捕获的异常中找到“停止未捕获的异常”,但这并没有帮助。

此外,我在哪里可以看到实际的异常消息?我没有看到任何东西。现在我不知道何时何地发生异常,只是它确实发生。

我已经阅读了netbeans.org上的一些关于6.9.1中的bug的缓存,该网站似乎已经停止了,但它似乎并没有在7.0中修复。

调试窗口并没有说任何有用的东西,给了一些形式av stacktrace是毫无意义的,因为它没有指定任何我自己的代码。

我从Eclipse的原因是切换IDE很烂,NetBeans是更为精简,但需要调试固定到有用...

+0

当我真的需要这个问题的答案! – brenjt

+2

为了防止有人来到这里需要在本机代码中打破异常,请在调试控制台窗口中输入'catch throw'来打破任何抛出的异常,并且'catch catch'打破任何捕获到的异常。阅读[GDB文档](http://www.gnu.org/software/gdb/documentation/)[这些命令](http://sourceware.org/gdb/current/onlinedocs/gdb/Set-Catchpoints。 html#Set-Catchpoints)打破特定类型的异常。 – doug65536

回答

9

当我使用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 
} 

UPDATE:

我不知道这是否会为Android工作,但你可以尝试进入“新建断点”。当输入一个新的断点来处理异常时,您需要知道确切的包/类异常名称 。例如,如果要捕获NullPointerException,那么转到Debug >> New Breakpoint来创建New Breakpoint,并在 Breakpoint Properties对话框的Exception Class Name字段中输入 java.lang.NullPointerException。选择是否打断被捕获,未被捕获或两者都有的异常,并且如果类/项目中出现过这种类型的异常,它将触发一个断点。

+0

thx ...但必须有一种方式,以便它在Visual Studio中的行为,即它在异常的线上断开? – Ted

+1

检查更新以了解其他可能的解决方案。 –

+0

Thx,但这不是我寻找的不幸=(我需要它来打破无论发生异常,没有我设置断点。最后,我切换回Eclipse ... =( – Ted

0

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