Как устроена иерархия исключений в Java?

Junior
411 просмотров
AFK Offer AI

Наверху Throwable — корень. Два наследника: Error (OutOfMemoryError, StackOverflowError — ловить не нужно, это критические проблемы JVM) и Exception. Exception делится на checked (IOException, SQLException — надо обрабатывать) и unchecked (RuntimeException и наследники — NullPointerException, IllegalArgumentException). Свои исключения наследуют от Exception (checked) или RuntimeException (unchecked). В Spring обычно делают кастомные unchecked и обрабатывают через @ExceptionHandler.

Следующий вопрос

Что такое N+1 проблема в Hibernate и как её решить?