Ответ
В Java непроверяемые (unchecked) исключения не требуют обязательного объявления в throws или обработки в блоке try-catch. Они являются подклассами RuntimeException или Error.
Основные примеры RuntimeException:
NullPointerException– обращение к методу или полюnullобъекта.ArrayIndexOutOfBoundsException– выход за границы массива.IllegalArgumentException– передача недопустимого аргумента в метод.IllegalStateException– вызов метода в недопустимом состоянии объекта.ClassCastException– некорректное приведение типов.ArithmeticException– арифметическая ошибка (например, деление на ноль).UnsupportedOperationException– вызов неподдерживаемой операции.
Примеры Error (критические ошибки JVM):
OutOfMemoryError– недостаточно памяти в куче (Heap).StackOverflowError– переполнение стека вызовов.NoClassDefFoundError– JVM не может найти определение класса.
Пример кода, генерирующего unchecked-исключения:
// NullPointerException
String str = null;
int length = str.length();
// ArrayIndexOutOfBoundsException
int[] numbers = {1, 2, 3};
int value = numbers[5];
// ArithmeticException
int result = 10 / 0;
// ClassCastException
Object obj = "Hello";
Integer num = (Integer) obj;
Хотя эти исключения не требуют обязательной обработки, хорошей практикой является их предвосхищение и корректная обработка для повышения надежности приложения.