Java Обработать непроверяемое исключение ArrayIndexOutOfBoundsException
Всем добрый день. Сразу оговорюсь-я учусь месяц на курсе Java, 34 года и перехожу с другой отрасли. Поэтому просьба сильно не пинать)) И так задание
- Обработать непроверяемое исключение ArrayIndexOutOfBoundsException.
Создать класс ArrayExceptionTest
Создать main метод
Создать и проинициализировать произвольный массив из 5-6 элементов.
Создать статический метод printArray(array, start, end), который выводит на экран элементы массива от индекса start до индекса end.
Добавить обработку исключения ArrayIndexOutOfBoundsException, для операции получения элемента массива по индексу. При возникновении ошибки выводить на экран сообщение вид: «Ошибка. Попытка обращения к несуществующему индексу: текущий индекс = i; размер массива = s;»
Вызвать несколько раз (с разными значениями) метод printArray в методе main для созданного ранее массива.
public class ArrayExceptionTest { public static void main(String[] args) { int[] testArray = {10, 20, 30, 40, 50, 60}; } }
Затык произошел на моменте создания статического метода. Если я правильно понял необходимо создать метод с параметрами (Массив, Начало массива, конец массива) который будет выводить элементы массива по указанным параметрам Поиск ничего не подсказал(понимаю что навык еще не отработан) нашел
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
но данный вариант создает просто новый массив и если к endIndex добавить лишнее будет новый массив с нулями, но не старый массив при выходе за который можно было бы получить ошибку Соответственно дальнейшее решение задание зависло. Помогите решить. Заранее спасибо кто ответит и ткнет где надо было что почитать
Ответы (1 шт):
Попробуйте следующий код:
public class ArrayExceptionTest {
public static void main(String[] args) {
int[] testArray = {10, 20, 30, 40, 50, 60};
System.out.println("Корректный вывод:");
printArray(testArray, 0, 6);
System.out.println("С ошибкой:");
printArray(testArray, 10, 15);
}
public static void printArray(int[] array, int start, int end) {
for (int i = start; i < end; i++) {
try {
System.out.println(array[i]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Ошибка. Попытка обращения к несуществующему индексу: " +
"текущий индекс = " + i + "; размер массива = " + array.length + ";");
break;
}
}
}
}
Здесь метод printArray выводит числа из массива от индекса start (включительно) до индекса end (не включительно). Это не уточняется в задании, но если хотите чтобы выводился элемент по индексу end измените в цикле условие i < end на i <= end.
Вывод программы:
