我正在使用NetBeans作为开发Android的IDE。
然而,当我得到一个例外时,Netbeans不会像我期望的那样打破异常。
我已经选中了“停止未捕获的例外”框,可以在选项 - >中找到Java调试器 - >停止未捕获的异常,但这没有帮助。
此外,我在哪里可以看到实际的异常消息?我什么都没看到。我不知道发生异常的地点和时间,只是确实发生了。
我在netbeans.org网站上看到一些关于6.9.1中已修复的错误的内容,但它似乎没有在7.0中修复。
调试窗口根本没有说任何有用的东西,给出了某种形式的堆栈跟踪,这是没有意义的,因为它没有指定任何我自己的代码。
我从Eclipse切换,因为IDE太糟糕了,NetBeans更精简,但调试需要修复才有用。
答案 0 :(得分:9)
我也使用netbeans时遇到这个问题。要获取异常消息,我使用try-and-catch。在catch()语句中,调用包含一些代码的函数并在其上放置断点。然后,当给出异常时,将调用catch语句中的断点,并且您可以从异常对象中读取信息(错误消息,堆栈等)。
try
{
// Doing something here
}
catch (Exception e1)
{
// This is called when an exception occurs
doSomething(); /// Put breakpoint here
}
<强>更新强>
我不确定这是否适用于Android,但您可以尝试输入“新断点”。输入新的断点以打破异常时,您需要知道 确切的包/类异常名称。例如,如果你想抓住一个 NullPointerException,然后转到Debug&gt;&gt;新断点创建一个新断点并输入 java.lang.NullPointerException进入Exception Class Name字段 断点属性对话框。选择是否中断已捕获,未捕获或两者的异常,如果在类/项目中发生此类异常,它将触及断点。
答案 1 :(得分:0)
我有这样的行为,我的源文件生成异常不在&#34;默认包&#34;。当我把所有东西都搬到&#34;默认包&#34;它开始正常工作并自动停止异常。
答案 2 :(得分:0)
这个答案实际上也回答了这个问题: https://stackoverflow.com/a/2671390/415551
引用用户Finbarr:
转到调试>新断点(或者CTRL + SHIFT + F8)。改变 在右上角下拉菜单中将“断点类型”设置为“异常”。 在“异常类”字段中输入
java.lang.NullPointerException
。 选择是中断捕获,未捕获还是同时中断。调试您的代码,并在出现以下情况时观看光荣的自动断点: 引发异常。
只需将java.lang.NullPointerException
更改为java.lang.Exception
即可在发生任何错误时终止。