空指针异常一般情况以及正常处理

2023-02-17 18:59:43

最近我有个朋友,他每天最喜欢呼唤我帮他改BUG,嘿,极品BUG啊,全是空指针异常的,我就很纳闷,我这么多年都很少遇到的东西,为什么他就介么多?!
随后,我就默默的给他瞅了一会,顺手改了几个比较简单的……
由于我经常接触的还是做web端的,我就轻轻地说几个吧,希望大家没有中招
一、前端undefined报错

经典情况,用JS的兄弟们都在调试的时候经常遇到,我总结为以下几种情况导致,并附上个人一点不成熟看法
1、这玩意是一个变量,诶,你直接console.info的时候,提示undefined,诶嘿,我推荐啊,你去前面加个 var str=""; 基本都可以解决你的这个问题
2、这玩意是你通过get请求到的值,然后输出的时候,发现,这玩意下面没了,我推荐啊,你先试试console.info(返回的data)然后在浏览器按F12进入console页面查看这玩意下面有木有你要的这个东西,如果这个data直接就是NULL了,或者压根没返回你要的参数,你就该去检查后台了哦
3、这玩意是你将JSP页面改成HTML页面之后,发现原先获取的浏览器路径坏了,变成了undefined了,这时候不要着急,你且将原先的页面中用了{}包起来的玩意,或者<c:>标签之类的东西,用正常的JS去请求获取就行了,如果是链接啥的前缀,你直接复制下你的项目的绝对地址改过去就好了。

二、后台空指针异常

这玩意是大佬们经常忽略的问题,唉,我推荐下我的方法
1、如果是地址传参,如果是String类型,那么就直接用if(null!=str)做下判断就好了
2、如果是地址传参,如果是list类型,那么,就TM用if(list.isempty())做下判断就好了
应该就这2种吧,唉,我读书少,最近脑子不够用,不太清楚

三、前端显示NULL字符串

这个问题是在我做页面展示的时候出现的
我用bootstrap做的前端展示框架,然后某一天,我发现我的字段里面应该为empty的,但是页面显示却是字符串“null”,我就纳闷了,于是检查查询的sql,发现查询的结果中,对应的那几个字符串都是NULL,于是我明白了,顺手就在SQL语句中加一个ifnull(str,'') as str或者ifnull(str,0) as str,嘿,这就完事了

四、后台空值下标越界

这种情况一般出现在字符串截取的情况下
例如,将list.get(0).get("str")截取N位,然后查询,再执行,就出错咯,原因有2个
1、list.get(0).get("str")这玩意压根就是个NULL
2、list.get(0).get("str")这玩意压根就不没有“str”这个属性或者这属性压根就不是可截取的类型
不过这种都可以用上面的二结合处理

五、字符串对比数据结果格式错误或者空值异常

这个最简单了,一般都是判断对比if(str!=null)或者if(str==null)的时候出现,唉,还是推荐大家养成用null去对比非空字符串吧

唉,希望对大家有点帮助,我头痛,先下班回家了,下午调休了,唉

  • 作者:敲代码的小胖叔
  • 原文链接:https://blog.csdn.net/weixin_41880919/article/details/121489524
    更新时间:2023-02-17 18:59:43