2011-10-13 167 views
5

我正在为Android的Java应用程序工作,我目前遇到一个问题,调试器正在进入我的catch块,并以某种方式前为空?有没有人见过这样的事情?捕获空异常

} 
catch(Exception ex) 
{ 
    // Debugger is coming through the catch block and ex is null ???? 
} 

回答

6

这听起来像源代码和编译的类不同步,所以调试器正在步入错误的块。

尝试做一个干净的,然后重建。

+0

我清理了项目并重建了,似乎修复了。谢谢! –

1

该块中的异常永远不会为空。如果调试器中的指令指针指向catch行,则需要再多行一行以获取可供您访问的异常。你可能想要添加一行代码(可能是一个日志调用)到你的catch块,并把你的断点放在那里来捕捉ex。

+0

是的,我甚至尝试过'抛出空;'但是然后一个实例'NullPointerException'被捕获。 –

+0

如果您说我回答了您的问题,请点击我答案旁边的复选框,说我解决了您的问题。 –

+0

我不是那个问这个问题的人,所以我不能那样做。 –

0

添加一些日志语句并检查。您的ex可能超出范围。

+0

有问题的David Carpenter说:“//调试程序正在通过catch块并且ex是null ????”。所以“ex”就在范围之内。 – hasanghaforian

0

在真实设备(Galaxy Tab 2)上进行调试时,我在AsyncTask中出现了完全相同的问题。所以我也可以证实,这个奇怪的问题是真实的。

对我来说,接受的答案没有帮助。

但在我的情况下,拔掉设备的USB插头并重新连接(然后再次运行我的应用程序)后神秘地消失了问题。