Изучение иерархии исключений в Java на примере кода

Вот пример изучения иерархии исключений в 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.