都没有一个定位的地方,应该返回给浏览器一个json的,结果啥也没有返回,网页也没有报错就是白色页面。
啥情况啊?
为啥报错不提示空指针的位置呢?我最后一步一步debug 2800行代码啊,还有很多套层的循环,尝试各种断点,才定位到空指针的位置。原因是对应id的数据在数据库中不存在。就是很砌块eclispe不提示报错的位置。
那个异常是你自己记录的日志,还是框架的日志?把异常堆栈也打出来就OK。你这样记录多半是只记录了e.toString()之类的。
哥们儿,我觉得你的是正解,请看我最后的两个问题回复,这里回复不能上图这个函数是action中的一个函数,用的是struts1框架,空指针是运行时异常不需要trycatch也不需要throws就能被虚拟机捕获,会不会是struts1捕捉了,在catch里就做了个e.toString()?的确,看错误的打印像是日志。可是我这个函数里一个trycatch也没有,函数名后面抛出了IOException。没有打印日志啊。这个跟eclipse没关系,是你异常捕获的代码写的不对,回复 @颖辉小居:还有问问题的时候最好能把代码贴出来回复 @颖辉小居:看你这个回复,说明你对异常的认识只是老师教的表面的那一点点,你在代码里把异常捕获一下,然后在catch里把堆栈信息打出来,就正常了,你这个的原因应该是你用的什么框架的问题,如果你想要了解详细的,回复了在给你解释空指针不需要trycatch啊,JVM会自动捕捉的,我这样写也应该报出空指针在哪一行啊只能看你输出结果后调用逻辑可能用到的对象是否进行非空过滤,单单这样贴出来,任谁都不知道是什么缘由为啥报错不提示空指针的位置呢?我最后一步一步debug2800行代码啊,还有很多套层的循环,尝试各种断点,才定位到空指针的位置。原因是对应id的数据在数据库中不存在。就是很砌块eclispe不提示报错的位置。那个异常是你自己记录的日志,还是框架的日志?把异常堆栈也打出来就OK。你这样记录多半是只记录了e.toString()之类的。
空指针是运行时异常啊,比如上面我测试的不需要trycatch也能定位到错误的那行啊。而问题中的代码是我自己写的不是框架,只有返回vo的函数是远程方法调用返回的,就算返回时null也是正常的,而后面在调用vo的函数的时候应该报空指针,控制台应该打印出异常的定位的。
因为本项目使用了struts1框架,我觉得可能是struts1捕捉异常做了类似下面的日志打印。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。