Вот пример изучения иерархии исключений в Java:
public class ExceptionHierarchyExample {
public static void main(String[] args) {
try {
// Some code that may throw exceptions
throw new ArithmeticException("Arithmetic exception occurred");
} catch (Exception e) {
// Print the exception and its hierarchy
printExceptionHierarchy(e);
}
}
public static void printExceptionHierarchy(Exception e) {
System.out.println("Exception Hierarchy:");
Class<?> exceptionClass = e.getClass();
while (exceptionClass != null) {
System.out.println(exceptionClass.getName());
exceptionClass = exceptionClass.getSuperclass();
}
}
}
В этом примере у нас есть метод main, в котором мы намеренно вызываем ArithmeticException. Исключение перехватывается в блоке catch, а затем вызывается метод printExceptionHierarchyдля печати иерархии исключений.
Метод printExceptionHierarchyпринимает Exceptionв качестве входных данных и использует отражение для перебора иерархии классов исключения. Он начинается с определенного класса исключений и переходит вверх к его суперклассу, печатая по пути имя каждого класса исключений.
Вот результат выполнения приведенного выше кода:
Exception Hierarchy:
java.lang.ArithmeticException
java.lang.RuntimeException
java.lang.Exception
java.lang.Throwable
java.lang.Object
Эти выходные данные показывают иерархию исключений, начиная с ArithmeticExceptionи заканчивая корневым классом Object.