信誓旦旦决定在CSDN上写bolg记录自己平时遇到的bug,结果那天之后居然就没再写过了,正好最近遇到个特别头疼的bug,就趁着中秋放假,把它记录下来吧。
问题描述:前一天还运行正常的一个maven项目,第二天启动的时候出现了如下错误:
错误截图:
主要是两个:BeanCreationException以及NUllPointerException,下面还有系统自定义的错误,我就不贴了,试了很多方法,都没有解决,走了很多弯路,
当时想司马当活马医,干脆直接从svn上下一个,再试试,可是svn坏了,只好硬着头皮解决了。
解决方案:其实提示已经很明显了,NullPointerException下面第一行就指明了空指针出现的位置,点击进入该类,发现定位到的那一行代码,调用了一个方法getRegion(),可能返回了一个null值,如下图:
于是我根据业务逻辑,找到了该方法对应数据库表格:
如上图所示,node站点‘三亚气象站’,对应的CODE_REGION值为null,所以才会出现bug。
结论:
1.不要觉得自己没有修改程序,程序就不会报错,因为在公司的开发中往往不止一你个人在使用同一个数据库。因此查看数据库是否出现问题也是解决bug的一个方向。
2.不要随意修改数据库的数据,可能会对别人的项目产生影响。
3.不要因为没有修改程序而理所应当的觉得代码应该是正确的,可能是其他不正确操作引起的bug,当然这种情况或许真的存在,但是也不要因此而忽视控制台错误信息给你的提示,代码或许是没错,但可能因为某一环节的变化,导致代码所表示的业务逻辑出现了问题,这样或许就可以避免在不应该的地方浪费时间。
最后想问一个上次碰到过的,但现在无法重现的一个问题,如下图所示:
我在project clean后,target文件夹上出现了如图所示的标记,但是实在查不到这究竟是什么意思,现在也无法重现,希望有知道的朋友能留言告诉我,不甚感激。