Иерархия исключений в Java

Иерархия исключений в Java

https://t.me/faangmaster

Я сразу рассмотрю несколько связанных вопросов с собеседования на Java программиста:

1) Какая иерархия исключений в Java?

2) Чем отличаются checked от unchecked исключений?

3) Что такое Error?

4) Какой пример Error вы знаете?

5) Можно и нужно ли перехватывать OutOfMemoryError?

6) Какие примеры RuntimeException вы знаете?

7) Можно и нужно ли перехватывать Throwable?


Иерархия исключений в Java:

Все классы в Java наследуют Object. Корнем иерархии исключений в Java является Throwable. У него есть два дочерних класса: Exception и Error.

RuntimeException является дочерним классом Exception. Примерами RuntimeException являются: NullPointerException, ArithmeticException. Их, конечно, намного больше.

От класса Exception наследуются много других классов. Например, IOException, SQLException и т.д.

Вторым дочерним классом Throwable является Error. Примерами Error являются: OutOfMemoryError, StackOverflowError. Дочерние классы Error указывают на серьезные проблемы в приложении. Обычное приложение не должно перехватывать Error. Они могут возникнуть в любой момент исполнения приложения. Но впринципе перехватывать их не запрещено компилятором. Также как и перехватить Throwable в try-catch. Но в большинстве случаем в этом нет смысла, т.к. вы не сможете его нормально обработать.

Исключения можно разделить на checked и unchecked.

checked исключения необходимо или перехватить в try-catch или добавить throws выражения в обьявления метода. Их еще называют compile-time исключениями. Примеры checked исключений: IOException, SQLException.

unchecked исключения не требуют добавления try-catch или throws выражений в обьявления методов. Их перехватить можно, но это не требуется компилятором. RuntimeException и его подклассы являются unchecked исключениями.

Error и его подклассы тоже относятся к unchecked исключениям. Их перехват не требуется компилятором. Они свидетельствуют о серьезных проблемах при выполнении приложения.

На картинке я выделил unchecked исключения зеленым цветом, а checked красным.




Report Page