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

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

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

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

Зачем нужен Optional и как его правильно использовать?