Java数组索引异常产生及解决方案
作者:LeeHua 发布时间:2023-11-05 16:52:27
标签:Java,数组,索引,异常
这篇文章主要介绍了Java数组索引异常产生及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
通过索引查询数组值
public class DemoArrayException {
public static void main(String[] args) {
int[] array = {0, 1, 2, 3};
int element = DemoArrayException.getElement(array, 4);
}
public static int getElement(int[] array, int index) {
return array[index];
}
}
很容易知道,数组array的元素个数是4个,不过索引值是从0开始的,所以最大索引是3。
其中,getElement方法是获取数组指定索引位置的值的。
运行程序,抛出错误
ArrayIndexOutOfBoundsException: 4
开始分析
这里通过getElement()方法,访问了array数组的4索引,这个时候,JVM就会检测到程序中出现异常。JVM检测出异常,它就会根据异常产生的原因,创建一个异常对象ArrayIndexOutOfBoundsException("4"),这个异常对象包含了内容、原因、位置。接着,JVM就会访问getElement方法,发现该方法中没有处理逻辑(try...catch),这时候,JVM就会把异常对象ArrayIndexOutOfBoundsException("4")抛出给方法的调用者main方法来处理这个异常。
main方法接收到JVM抛出的异常对象ArrayIndexOutOfBoundsException("4"),而main方法也没有处理逻辑(try...catch),于是继续把对象抛出给main方法的调用者JVM处理。
JVM接收到main方法抛回来的异常对象后,会把异常对象的内容、原因、位置以红色字体打印在控制台。然后JVM会终止当前正在执行的Java程序。
来源:https://www.cnblogs.com/liyihua/p/12203533.html


猜你喜欢
- 本文实例讲述了C#针对xml文件转化Dictionary的方法。分享给大家供大家参考。具体实现方法如下:下面是xml文件:<?xml
- HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCod
- 一、多线程的优缺点多线程的优点:1)资源利用率更好2)程序设计在某些情况下更简单3)程序响应更快多线程的代价:1)设计更复杂虽然有一些多线程
- 本文实例讲述了java实现给出分数数组得到对应名次数组的方法。分享给大家供大家参考。具体实现方法如下:package test01;/**
- 演示代码: MenuExamples.java package swt_jface.demo5; import org.eclipse.sw
- 在X86的环境下,var wParam = (int)msg.WParam;工作得很好。在X64的环境下,快速滚动滚轮会出现msg.WPar
- Eclipse ADT的Custom debug keystore自定义调试证书的时候,Android应用开发接入各种SDK时会发现,有很多
- 前言CyclicBarrier和CountDownLatch这两个工具都是在java.util.concurrent包下,并且平时很多场景都
- 概述模板方法模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。那么什么是模板方法呢?我们看下模板方法的定义。一个具体方法而非
- 什么是emoji表情emoji表情是一种表情符号,在代码中它现在其实是一组遵循Unicode的编码,即每一个表情符号都对应了一个Unicod
- Input源码解读——从"Show tabs"开始本文基于Android T版本
- 代码如下:// 时间线装饰器public class TimeLineDecoration extends RecyclerView.Ite
- Android WebView常见问题解决方案汇总:就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了we
- 1、什么是内存泄漏内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。随着
- 1、cookie是啥?随手百度了网友的说说简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在
- using System;using System.Runtime.InteropServices;using System.Windows
- 引言使用微信时我们会发现,首次进入微信的好友列表时,会加载好友头像,但是再次进入时,就不用重新加载了,而且其他页面都不用重新加载,说明微信的
- Android 如何修改APK的默认名称用Android Studio 打包App时生成的名称默认是 app-release.apk(已签名
- webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。概念性的东西就不说太多,下面开始创建一个简单的webservi
- Android Material Design:PopupMenuAndroid Material Design 引入的PopupMenu类