Наверху Throwable — корень. Два наследника: Error (OutOfMemoryError, StackOverflowError — ловить не нужно, это критические проблемы JVM) и Exception. Exception делится на checked (IOException, SQLException — надо обрабатывать) и unchecked (RuntimeException и наследники — NullPointerException, IllegalArgumentException). Свои исключения наследуют от Exception (checked) или RuntimeException (unchecked). В Spring обычно делают кастомные unchecked и обрабатывают через @ExceptionHandler.
Как устроена иерархия исключений в Java?
Junior
411 просмотровAFK Offer AI
Что такое N+1 проблема в Hibernate и как её решить?