Java调试器不提供空指针异常的行号
当发生异常时,将错误发送给错误跟踪器的应用程序会发出以下模糊跟踪:Java调试器不提供空指针异常的行号,java,debugging,nullpointerexception,line-numbers,Java,Debugging,Nullpointerexception,Line Numbers,当发生异常时,将错误发送给错误跟踪器的应用程序会发出以下模糊跟踪: java.lang.NullPointerException at d.d(APP:1801) at ew.c(APP:74) at eu.c(APP:132) at m.a(APP:189) at com.GameClient.main(APP:100) 在消除跟踪目标后,第一行正确显示了我 at com.AudioHelper.void tick()(APP:1801) 代码中的哪个在这里: public static
java.lang.NullPointerException
at d.d(APP:1801)
at ew.c(APP:74)
at eu.c(APP:132)
at m.a(APP:189)
at com.GameClient.main(APP:100)
在消除跟踪目标后,第一行正确显示了我
at com.AudioHelper.void tick()(APP:1801)
代码中的哪个在这里:
public static void tick(){
if(Window.getID() == GAME_BOARD){
playAmbientSounds();
}
else if(Window.getID() == GAME_MENU){
playMenuSounds(); !!!! THIS IS LINE 1801 !!!
}
// Recycle completed Sources in all windows.
returnCompletedSources();
}
第1801行是playMenuSounds的位置;被称为
我的问题是,为什么调试器返回我调用另一个静态方法的那一行,而不是返回发生实际空指针异常的那一行,我假设它必须在静态方法playMenuSounds中。这个方法是私有静态的
谢谢例外显示勾选,但方法是更新。。。那个方法是模糊的还是你在错误的地方?Ups。。。我抄错代码了。更新帖子。嗯,从未见过这样的案例。可能该方法是内联的,并且在某种程度上使堆栈帧不再可见/可重构。如果该方法是内联的,则可能会发生这种情况。