java.lang.IndexOutOfBoundsException: Index: 0, Size: 0与ArrayIndexOutOfBoundsException是一个东西吗?

1 问题场景

最近接了一个小项目(原生jdbc+servlet+jsp),原本正常运行的程序,出现了一个BUG,具体异常信息如下:

exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

2 问题分析

1.刚开始猛一看以为是数组越界异常,定位到代码处发现写的是增强for,不可能会出现数组越界异常(取数时,索引超过数组长度)

2.通过报错提示index:0,size:0,我第一反映就是没连上数据库,没有查到数据,导致集合为空导致的,因为使用的原生的JDBC来跟数据库建立连接的,很久没这么写了,难免会有问题,打断点跟了一下,定位到错误代码位置,进行第三步

3.查看JDK中文API来找找答案,发现IndexOutOfBoundsException与ArrayIndexOutOfBoundsException二者是继承关系,搜索后问题得到解决,就是在使用List之前加一个非空判断跟size>0的判断就可以了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bhb0NS1E-1616911992596)(img/image-20210328121637082.png)]

3 得出结论

出现异常前与解决问题后代码展示
在这里插入图片描述
我想大家可能就会有一个问题了,平时使用List的时候也没有做过非空跟长度判断,为什么程序不报错呢?其实这也是我的问题,之前代码是能正常运行的,加了几条数据就挂了。后来自己做了个初步的猜想:写的时候使用的链式编程,是否是上图蓝框中us.getAllUser还未获取到数据库中的数据,程序就往下执行了.get(0).getName(),从而导致异常的发生。而能想到唯一合理的解释就是jdbc连接数据库获取数据太慢了(要求是使用jdbc)

4 留下问题

目前还不知道具体原因,如有经验的大哥可留言,万分感谢!

小贴士:不知道异常什么意思时,可以把异常粘贴到JDK的api中搜索,就能看到是什么异常了,参考文章第一张图

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jayden 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值