ITPub博客

首页 > 数据库 > 数据库开发技术 > 异常处理丨一个小案例,带你解决NullPointerException!

异常处理丨一个小案例,带你解决NullPointerException!

原创 数据库开发技术 作者:Finally_m 时间:2022-07-20 08:03:00 0 删除 编辑
点击上方蓝字关注我们

一. 需求背景

最近索尔老师给同学们讲了类和对象的基本概念及使用方法,并给大家留了个小练习,练习的题目是用一个数组来存储班级里的学生信息,其中包括学生的学号、姓名、年龄属性,最后要将学生的信息输出。这道题目看起来是很简单的,于是大家就开始疯狂地敲代码了...........

20分钟后,有学生的代码中出现了bug......

二. 实现代码

下图就是一个同学编写的代码,你看看有没有什么问题呢?

1. 学生类

这是定义的Student学生类,代码如下:

2. 学生测试类

这是定义的学生测试类,代码如下图所示:

3. 运行结果

上面的代码,运行后却出现了如下错误提示:

根据上图的异常信息可知,代码中出现了空指针异常!我们知道,导致空指针异常的原因是因为代码中的某个对象为空!

4. 异常原因分析

空指针异常很常见,但为什么会出现空指针呢?我们来分析一下具体原因吧......

根据提示我们可以看到,异常是在StudentTest类中的第28行发生的,那么我们就看看,在第28行哪个对象有可能是空的呢?第28行代码如下:

我们看看第28行代码,到底是哪个对象为空?这里显然是students[i]这个对象为空,从而导致了空指针异常!

那么为什么students[i]对象是空的呢?我们的Students数组不是已经new过了吗?

注意:在我们new对象数组的时候,只是为数组开辟了指定长度的内存空间,但这个数组中的元素默认是null哦!接下来我们可以调试下看是不是这样的!

根据debug的结果可知,果然是数组中的元素为null!

5. 异常解决

现在既然我们已经知道了故障原因,那又该怎么解决这个问题呢?

我们可以在第28行前new一个学生对象,并将其存储到数组中,如下图所示:

接下来我们把代码运行起来,再进行测试,会发现空指针异常的问题已经得到了解决!现在你知道空指针异常是怎么产生,以及怎么解决了吗?如果你还有其他问题,可以在评论区给索尔老师留言,我看到后会及时给你回复哦。

本月福利,关注公众号回复【福利】抢书咯!

今日份干货,学会的同学回复“666”!

精选第一名,可以领取办公鼠标垫一个哦!

点击【阅读原文】,零基础免费学Java!

原文作者:Java架构栈;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-04-13

  • 博文量
    573
  • 访问量
    243878