开发者社区> 问答> 正文

这个空指针到底是什么空指针啊,都没有一个定位的地方。?报错

都没有一个定位的地方,应该返回给浏览器一个json的,结果啥也没有返回,网页也没有报错就是白色页面。

啥情况啊?


为啥报错不提示空指针的位置呢?我最后一步一步debug 2800行代码啊,还有很多套层的循环,尝试各种断点,才定位到空指针的位置。原因是对应id的数据在数据库中不存在。就是很砌块eclispe不提示报错的位置。

展开
收起
爱吃鱼的程序员 2020-06-08 20:05:29 698 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    那个异常是你自己记录的日志,还是框架的日志?把异常堆栈也打出来就OK。你这样记录多半是只记录了e.toString()之类的。

    哥们儿,我觉得你的是正解,请看我最后的两个问题回复,这里回复不能上图这个函数是action中的一个函数,用的是struts1框架,空指针是运行时异常不需要trycatch也不需要throws就能被虚拟机捕获,会不会是struts1捕捉了,在catch里就做了个e.toString()?的确,看错误的打印像是日志。可是我这个函数里一个trycatch也没有,函数名后面抛出了IOException。没有打印日志啊。这个跟eclipse没关系,是你异常捕获的代码写的不对,回复 @颖辉小居:还有问问题的时候最好能把代码贴出来回复 @颖辉小居:看你这个回复,说明你对异常的认识只是老师教的表面的那一点点,你在代码里把异常捕获一下,然后在catch里把堆栈信息打出来,就正常了,你这个的原因应该是你用的什么框架的问题,如果你想要了解详细的,回复了在给你解释空指针不需要trycatch啊,JVM会自动捕捉的,我这样写也应该报出空指针在哪一行啊只能看你输出结果后调用逻辑可能用到的对象是否进行非空过滤,单单这样贴出来,任谁都不知道是什么缘由为啥报错不提示空指针的位置呢?我最后一步一步debug2800行代码啊,还有很多套层的循环,尝试各种断点,才定位到空指针的位置。原因是对应id的数据在数据库中不存在。就是很砌块eclispe不提示报错的位置。

    引用来自“winters”的评论

    那个异常是你自己记录的日志,还是框架的日志?把异常堆栈也打出来就OK。你这样记录多半是只记录了e.toString()之类的。

    空指针是运行时异常啊,比如上面我测试的不需要trycatch也能定位到错误的那行啊。而问题中的代码是我自己写的不是框架,只有返回vo的函数是远程方法调用返回的,就算返回时null也是正常的,而后面在调用vo的函数的时候应该报空指针,控制台应该打印出异常的定位的。

    因为本项目使用了struts1框架,我觉得可能是struts1捕捉异常做了类似下面的日志打印。

    2020-06-08 20:05:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载