我在Java代码中遇到了一些非常奇怪的行为。我的Eclipse日志控制台上显示了一个异常,说Exception:java.lang.NullPointerException
没有引用它出现的代码。
在调试时,我发现了发生这种情况的一行,所以把它放在try-catch
希望我抓住它。但它没有在catch块中返回。
奇怪的部分即使在执行后立即抛出异常并且执行正常继续。
有人可以告诉我可能的原因吗? 我可以附上源代码,但我检查了参数,一切看起来都很好。
这篇文章的主要原因是如果你们中的任何一个编码人员遇到过这种行为的话。
答案 0 :(得分:0)
Eclipse可能存在问题。我之前看到过这种行为,并重新启动Eclipse解决了这个问题。
答案 1 :(得分:0)
请检查您的构建器是否已激活,并且是否自动构建更改的源代码。否则,您的代码更改将永远不会进入您的运行时应用程序。
我很确定,执行的源代码与编辑器中显示的源代码不同。
答案 2 :(得分:0)
如果您看到异常消息但没有堆栈跟踪,那么这是由如下代码引起的:
try
{
// something which causes the exception
}
catch (final Exception err)
{
System.out.println(err);
}
此代码的问题在于它只打印异常.toString()
方法的结果。对于大多数例外,这只是异常类和消息。此代码省略了堆栈跟踪,因此调试问题变得更加困难。
如果要捕获异常,则将代码更改为如下所示,以使堆栈跟踪包含在输出中:
try
{
// something which causes the exception
}
catch (final Exception err)
{
err.printStackTrace();
}