是否总是抛出跟踪中提到的最顶行?

时间:2010-10-26 19:08:50

标签: java nullpointerexception

我正在尝试在此跟踪中找到错误的来源:

org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver logException: Handler execution resulted in exception
java.lang.NullPointerException
    at com.wikistart.service.WikiServiceImpl.getWikis(WikiServiceImpl.java:548)
    at com.wikistart.controller.WikiController.wiki(WikiController.java:88)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:43)

是否始终将null抛出在跟踪中提到的最顶行?

换句话说,这个NullPointerException来自WikiServiceImpl.java:548而非来自WikiController.java:88

3 个答案:

答案 0 :(得分:6)

是的,跟踪的顶部是异常的来源。堆栈跟踪显示调用每个方法的位置。

因此,在您的情况下,在548行的WikiServiceImpl.java中抛出了NullPointerException,并且从WikiController.java第88行调用了在那里执行的方法,依此类推。

答案 1 :(得分:4)

是的,它来自最顶层。

从那里每行向下表示调用上述方法。有关stacktraces的更多信息,请See here

检查the possible reasons是否有NullPointerException - 然后很明显哪个对象会导致异常。

答案 2 :(得分:0)

是。堆栈代表您在代码中的位置。呼叫开始是底部并向上运行。