Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Throwable.getCause()

Возвращает исходное исключение, которое было обёрнуто в текущее.

Доступно с: Java 1.4

Синтаксис

public Throwable getCause()

Возвращаемое значение

ThrowableИсключение-причина или `null`.

Примеры

Обёртка исключения с сохранением причины:

class ConfigException extends RuntimeException {
    ConfigException(String message, Throwable cause) {
        super(message, cause);
    }
}
 
int readPort(String value) {
    try {
        return Integer.parseInt(value);
    } catch (NumberFormatException e) {
        throw new ConfigException("Bad port setting", e);
    }
}
 
void main() {
    try {
        readPort("80a");
    } catch (ConfigException e) {
        IO.println(e.getMessage());
        IO.println("cause: " + e.getCause());
    }
}

Результат:

Bad port setting
cause: java.lang.NumberFormatException: For input string: "80a"

Примечания

Когда исключение перехватывают и бросают другое, исходное нужно передать в конструктор вторым аргументом — иначе информация о настоящей причине потеряется. printStackTrace() печатает всю цепочку причин в строках Caused by:.

См. также

  • Exception — Базовый класс исключений, которые программа может перехватить и обработать.
  • UncheckedIOException — Непроверяемая обёртка над `IOException` — нужна там, где проверяемые исключения запрещены, например в лямбдах.
  • Throwable.getMessage() — Возвращает текст сообщения исключения.

В учебнике

  • Свои исключения — Как создать собственный класс исключения в Java — наследование от Exception и RuntimeException, сообщение, причина и дополнительные поля.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.