Метод getCause
Метод getCause класса Throwable возвращает исключение,
которое стало причиной возникновения текущего исключения.
Метод не принимает параметров. Если причина не была установлена,
метод возвращает null. Причина обычно задается через
конструктор с параметром cause или метод initCause.
Синтаксис
throwable.getCause()
Пример
Давайте создадим исключение с причиной и получим эту причину:
public class Main
{
public static void main(String[] args)
{
Throwable cause = new RuntimeException("Root cause");
Exception ex = new Exception("Wrapper", cause);
System.out.println(ex.getCause());
}
}
Результат выполнения кода:
"java.lang.RuntimeException: Root cause"
Пример
Давайте проверим, что возвращает метод, если причина не задана:
public class Main
{
public static void main(String[] args)
{
Exception ex = new Exception("No cause");
System.out.println(ex.getCause());
}
}
Результат выполнения кода:
null
Пример
Давайте получим сообщение причины через getMessage:
public class Main
{
public static void main(String[] args)
{
Throwable cause = new IllegalArgumentException("Bad argument");
Exception ex = new Exception("Operation failed", cause);
System.out.println(ex.getCause().getMessage());
}
}
Результат выполнения кода:
"Bad argument"
Смотрите также
-
метод
getMessage,
который возвращает сообщение исключения -
метод
printStackTrace,
который выводит стек вызовов -
класс
Throwable,
который является базовым для всех исключений -
метод
addSuppressed,
который добавляет подавленное исключение