ArrayIndexOutOfBoundsException应不应该抛出(throws)?

qq_397131 2020-04-08 09:17:01
JAVA核心技术卷1 P267页7.1.2说(图中蓝线部分)“程序出现错误会抛出一个ArrayIndexOutOfBoundsException这样的非受查异常”第二张绿框部分有说不应该抛出这个异常。还有第一张图的的红框部分两条怎么感觉差不多是一个意思?这几点到底应该如何去理解,好难呀

...全文
358 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
情谊梦幻 2020-04-09
  • 打赏
  • 举报
回复
ArrayIndexOutOfBoundsException数组下标越界异常是一定要避免的异常,所以不能throws,像那种不能避免的运行时异常是可以抛出异常的,例如业务层异常等等
qq_397131 2020-04-09
  • 打赏
  • 举报
回复
引用 1 楼 心怀啊 的回复:
异常分为分为两种,受检查异常比如操作文件文件可能不存在,这种异常必须进行捕获try catch进行处理。非受查异常就比如数组越界就不用进行捕获。 图中所说的抛出异常是两种:人为抛出受检查异常,虚拟机抛出非受查异常。 红线1说的因为该方法声明抛出异常所以你调用的时候必须进行捕获处理可能会发生的异常。 红线2说的是比如你调用一个方法,方法内部对参数进行验证,如果不符合规定则会抛出异常,就是利用throw语句
就是说1)和2)是需要程序员处理的,3)和4)是虚拟机负责抛出 呗? 1)是调用别人可能有异常的方法需要自己这边try catch 2)是编写方法时首次抛出异常( if(a<b) throw new XXXXException )
心怀啊 2020-04-08
  • 打赏
  • 举报
回复
异常分为分为两种,受检查异常比如操作文件文件可能不存在,这种异常必须进行捕获try catch进行处理。非受查异常就比如数组越界就不用进行捕获。 图中所说的抛出异常是两种:人为抛出受检查异常,虚拟机抛出非受查异常。 红线1说的因为该方法声明抛出异常所以你调用的时候必须进行捕获处理可能会发生的异常。 红线2说的是比如你调用一个方法,方法内部对参数进行验证,如果不符合规定则会抛出异常,就是利用throw语句

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧