Перейти к контенту

Обработка исключения индекса массива Java вне границ?

Как правило, массив имеет фиксированный размер, и каждый элемент доступен с помощью индексов. Например, мы создали массив размером 9. Тогда допустимыми выражениями для доступа к элементам этого массива будут значения от [0] до [8] (длина-1).

Когда вы используете значение –ve или значение, которое больше или равно размеру массива, возникает исключение ArrayIndexOutOfBoundsException.

 

Например, если вы выполняете следующий код, он отображает элементы в массиве и просит указать индекс для выбора элемента. Поскольку размер массива равен 7, допустимый индекс будет от 0 до 6.

Пример

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

public class AIOBSample {
   public static void main(String args[]) {
      int[] myArray = {897, 56, 78, 90, 12, 123, 75};
      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 и выполнение было прекращено.

Вывод

Elements in the array are::
[897, 56, 78, 90, 12, 123, 75]
Enter the index of the required element ::
7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at AIOBSample.main(AIOBSample.java:12)

Обработка исключения:

Вы можете обработать это исключение, используя try catch, как показано ниже.

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

public class AIOBSampleHandled {
   public static void main(String args[]) {
      int[] myArray = {897, 56, 78, 90, 12, 123, 75};
      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 ::");
      try {
         int element = sc.nextInt();
         System.out.println("Element in the given index is :: "+myArray[element]);
      } catch(ArrayIndexOutOfBoundsException e) {
         System.out.println("The index you have entered is invalid");
         System.out.println("Please enter an index number between 0 and 6");
      }
   }
}

Результат:

Elements in the array are::
[897, 56, 78, 90, 12, 123, 75]
Enter the index of the required element ::
7
The index you have entered is invalid
Please enter an index number between 0 and 6

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)