0

我在我的 Java 代码中遇到了一些非常奇怪的行为。我的 Eclipse 日志控制台上显示了一个异常,说Exception:java.lang.NullPointerException没有引用它发生的代码。

在调试时,我发现了发生这种情况的一行,所以把它放在try-catch希望我能抓住它的地方。但是它没有在 catch 块中返回。

奇怪的部分是即使在执行后立即在该行抛出异常并且执行正常继续。

有人可以告诉我可能的原因吗?我本可以附上源代码,但我检查了参数,一切看起来都很好。

我写这篇文章的主要原因是,如果你们中的任何一个程序员遇到过这种行为,我就会了解这种行为。

4

3 回答 3

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();
    }
于 2013-03-02T21:16:51.030 回答
0

可能是 Eclipse 的问题。我以前见过这种行为,重新启动 Eclipse 解决了这个问题。

于 2013-03-02T12:54:37.630 回答
0

请检查您的构建器是否已激活并且更改的源代码是否自动构建。否则,您的代码更改将永远不会进入您的运行时应用程序。

我很确定,执行的源代码与编辑器中显示的源代码不同。

于 2013-03-02T13:12:10.147 回答