如果没有堆栈,就没有好办法了。要是程序有写其它日志的,看看其它日志里面出错前后的内容,要是什么都没有只有NullPointerException的话,那么看看能不能根据错误发送的时间回忆起做的事情。要是连时间都没有的话,只好自己在界面上东摸摸西摸摸,后台不停的看日志,看什么时候刷出错误来了。

解决方案 »

  1.   

    先确认下是怎样方式输出的,log4j,system out print,or others
    然后,工程中代码searching吧
    关键字比如(System.out.println(e.getMessage())),看运气吧
    想不出好办法
      

  2.   

    完全不知道啊。log4j是有格式的,应该就是没做保护,直接系统级别抛出的,然后这次请求就废了。
      

  3.   

    项目上线是不允许存在System.out.println的,你搜索下吧,顺便都干掉
      

  4.   

    嗯,System.out.println这个肯定是没有的。我的问题是有没有办法能找出抛出空指针异常的代码块?
      

  5.   

    狠一点的办法是看看有没有办法找一个统一的入口,想办法把堆栈打出来实在不行,比如把struts的代码重编一下,在action的基类里把异常catch掉当然,你出现这样的情况,可能是所有的异常已经被catch掉,只留log的结果,这样,你只有慢慢的找catch块,加上 stack trace了。