Часто при написании кода на 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, чтобы избежать обработки ошибок, которые не предназначены для обработки приложением.
Добавить комментарий