Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
15 Июл 2024
2 мин
773

Разница между Throwable и Exception в блоке try-catch

Часто при написании кода на Java встречается такая ситуация, когда необходимо обработать возможные исключения. Для этого используется конструкция

Часто при написании кода на Java встречается такая ситуация, когда необходимо обработать возможные исключения. Для этого используется конструкция try-catch. Внутри блока catch указывается тип объекта, который будет обрабатываться. Не редко встречаются два варианта: Throwable и Exception.

try {
    // код, в котором может произойти исключение
} catch (Throwable t) {
    // обработка исключения
}

В другом случае:

try {
    // код, в котором может произойти исключение
} catch (Exception e) {
    // обработка исключения
}

Взглянем, в чем отличие этих двух подходов.

Throwable

В Java все исключения и ошибки являются подклассами класса Throwable. Это означает, что если в блоке catch указать Throwable, то будут перехвачены абсолютно все исключения и ошибки, которые могут возникнуть в блоке try.

Это может быть полезно, если нужно перехватить все возможные проблемы, но есть и обратная сторона медали. В Java есть так называемые «ошибки», которые являются событиями большой серьезности. Они обычно связаны с низкоуровневыми проблемами, такими как OutOfMemoryError. Такие ошибки обычно не предназначены для обработки приложением, и при попытке обработать их можно только ухудшить ситуацию.

Exception

При использовании Exception в блоке catch будут перехвачены все исключения, но не ошибки. Это охватывает большинство типов исключений, с которыми придется столкнуться при написании кода.

Этот подход более безопасен, потому что ошибки, которые не предназначены для обработки приложением, не будут перехвачены.

Вывод

Выбор между использованием Throwable и Exception в блоке catch во многом зависит от конкретной ситуации и требуемой обработки исключений. Однако, в большинстве случаев предпочтительнее использовать Exception, чтобы избежать обработки ошибок, которые не предназначены для обработки приложением.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий