2013-03-02 49 views
0

我在Java代码中遇到了一些非常奇怪的行为。我的Eclipse日志控制台上显示的异常显示Exception:java.lang.NullPointerException,没有提及它发生的代码。无法找到空指针源异常

在调试时,我发现了一条线,发生了这种情况,所以把它放在try-catch希望我抓住它。然而它并没有返回到catch block。

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

有人可以告诉我可能的原因吗? 我可以附上源代码,但我已经检查了参数,并且都很好。

我这篇文章的主要原因是要了解这样的行为,如果你的任何编程人员遇到过。

+1

你也可以清理项目 – ogzd 2013-03-02 12:55:58

+2

我觉得你的编译代码与源代码不同步 – jonasnas 2013-03-02 12:57:09

+0

它出现在哪里 - 控制台或错误日志? – 2013-03-02 13:06:17

回答

0

可能是Eclipse的一个问题。我之前已经看到过这种行为,并且重新启动Eclipse解决了这个问题。

0

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

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

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(); 
    }