Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ArrayIndexOutOfBoundsException ใน Java คืออะไร

อาร์เรย์เป็น โครงสร้างข้อมูล/คอนเทนเนอร์/อ็อบเจกต์ ที่เก็บคอลเลกชันแบบลำดับคงที่ขององค์ประกอบชนิดเดียวกัน ขนาด/ความยาวของอาร์เรย์ถูกกำหนดตอนสร้าง

ตำแหน่งขององค์ประกอบในอาร์เรย์เรียกว่า index หรือ subscript องค์ประกอบแรกเก็บที่ index 0 ตัวที่สองอยู่ index 1 ต่อไป...

ArrayIndexOutOfBoundsException ใน Java คืออะไร

แต่ละองค์ประกอบในอาร์เรย์เข้าถึงได้ด้วยนิพจน์ที่มีชื่ออาร์เรย์ตามด้วยดัชนีขององค์ประกอบที่ต้องการในวงเล็บเหลี่ยม

System.out.println(myArray[3]); // พิมพ์ 1457

โดยทั่วไป อาร์เรย์มีขนาดคงที่ และแต่ละองค์ประกอบเข้าถึงได้ด้วยดัชนี ตัวอย่าง สร้างอาร์เรย์ขนาด 7 นิพจน์ที่ถูกต้องคือ a[0] ถึง a[6] (length-1)

เมื่อใดก็ตามที่ใช้ค่าลบ หรือ ค่าที่มากกว่าหรือเท่ากับขนาดอาร์เรย์ จะเกิด ArrayIndexOutOfBoundsException

ตัวอย่าง ถ้ารันโค้ดต่อไปนี้ จะแสดงองค์ประกอบในอาร์เรย์และขอให้ป้อนดัชนีเพื่อเลือกองค์ประกอบ เนื่องจากขนาดอาร์เรย์คือ 7 ดัชนีที่ถูกต้องคือ 0 ถึง 6

ตัวอย่าง

import java.util.Arrays;
import java.util.Scanner;

public class AIOBSample {
    public static void main(String args[]){
        int[] myArray = {1254, 1458, 5687, 1457, 4554, 5445, 7524};
        System.out.println("Elements in the array are: ");
        System.out.println(Arrays.toString(myArray));
        
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the index of the required element: ");
        int element = sc.nextInt();
        System.out.println("Element in the given index is :: " + myArray[element]);
    }
}

แต่ถ้าสังเกตผลลัพธ์ด้านล่าง เราขอองค์ประกอบดัชนี 9 เนื่องจากเป็นดัชนีไม่ถูกต้อง ArrayIndexOutOfBoundsException จึงเกิดขึ้นและโปรแกรมหยุดทำงาน

ผลลัพธ์

Run time exception −

Elements in the array are: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Enter the index of the required element: 7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
    at AIOBSample.main(AIOBSample.java:12)