Приведи пример Unchecked Exception
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Unchecked Exception в Java
Unchecked Exception (или Runtime Exception) — это исключения, которые не требуют явной обработки или декларирования в сигнатуре метода. Они являются ошибками программиста, возникают во время выполнения и наследуют от класса RuntimeException.
Основные характеристики Unchecked Exception
- Не требуют блока
try-catch - Не нужно указывать
throwsв сигнатуре метода - Возникают в процессе выполнения программы
- Наследуют от
java.lang.RuntimeException - Обычно указывают на ошибки в логике программы
Примеры Unchecked Exception
1. NullPointerException (самый частый)
Возникает при попытке обращения к методу или свойству null-объекта:
String str = null;
int length = str.length(); // NullPointerException
2. ArrayIndexOutOfBoundsException
Возникает при обращении к индексу вне границ массива:
int[] numbers = {1, 2, 3};
int value = numbers[10]; // ArrayIndexOutOfBoundsException
3. ClassCastException
Возникает при неправильном преобразовании типов:
Object obj = "Hello";
Integer num = (Integer) obj; // ClassCastException
4. ArithmeticException
Возникает при арифметических ошибках, например делении на ноль:
int result = 10 / 0; // ArithmeticException: / by zero
5. NumberFormatException
Возникает при попытке преобразовать строку в число неправильного формата:
String str = "abc";
int number = Integer.parseInt(str); // NumberFormatException
6. IllegalArgumentException
Возникает когда метод получил недопустимый аргумент:
public void setAge(int age) {
if (age < 0 || age > 150) {
throw new IllegalArgumentException("Возраст должен быть от 0 до 150");
}
}
setAge(-5); // IllegalArgumentException
Проверяемые vs Непроверяемые исключения
| Характеристика | Checked Exception | Unchecked Exception |
|---|---|---|
| Наследование | Exception | RuntimeException |
| Обработка | Обязательна | Опциональна |
| Декларирование | throws обязателен | Не требуется |
| Время обнаружения | Compile-time | Runtime |
| Примеры | IOException, SQLException | NullPointerException, ArithmeticException |
Практические примеры обработки
// Без обработки (компилируется успешно)
public void processUserInput(String input) {
int value = Integer.parseInt(input);
System.out.println(value);
}
// С обработкой
public void processUserInputSafe(String input) {
try {
int value = Integer.parseInt(input);
System.out.println(value);
} catch (NumberFormatException e) {
System.err.println("Ошибка: неправильный формат числа");
}
}
Когда использовать Unchecked Exception
- Ошибки программиста — когда нарушена логика кода
- Неправильные параметры — при передаче недопустимых значений
- Состояние объекта — когда объект находится в неправильном состоянии
Лучшие практики
- Избегай ловить
ExceptionилиRuntimeException— лови конкретные исключения - Не подавляй исключения молча — логируй или обрабатывай
- Проверяй предусловия перед выполнением (defensive programming)
- Создавай кастомные unchecked исключения для домена приложения
public class InvalidUserDataException extends RuntimeException {
public InvalidUserDataException(String message) {
super(message);
}
}
Unchecked Exception — это мощный механизм для обозначения программных ошибок, позволяющий коду оставаться чистым и читаемым.