← Назад к вопросам

Приведи пример Unchecked Exception

1.6 Junior🔥 201 комментариев
#ORM и Hibernate#Spring Boot и Spring Data#Базы данных и SQL

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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 ExceptionUnchecked Exception
НаследованиеExceptionRuntimeException
ОбработкаОбязательнаОпциональна
Декларированиеthrows обязателенНе требуется
Время обнаруженияCompile-timeRuntime
ПримерыIOException, SQLExceptionNullPointerException, 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

  1. Ошибки программиста — когда нарушена логика кода
  2. Неправильные параметры — при передаче недопустимых значений
  3. Состояние объекта — когда объект находится в неправильном состоянии

Лучшие практики

  • Избегай ловить Exception или RuntimeException — лови конкретные исключения
  • Не подавляй исключения молча — логируй или обрабатывай
  • Проверяй предусловия перед выполнением (defensive programming)
  • Создавай кастомные unchecked исключения для домена приложения
public class InvalidUserDataException extends RuntimeException {
    public InvalidUserDataException(String message) {
        super(message);
    }
}

Unchecked Exception — это мощный механизм для обозначения программных ошибок, позволяющий коду оставаться чистым и читаемым.