Абсолютно.
Вы должны всегда обрабатывать исключения как можно ближе к источнику. Это позволяет вам ответить соответствующим образом, например, повторить попытку операции, которая завершилась неудачно, закрыть все открытые ресурсы, дать отзыв пользователю или записать более конкретную информацию журнала, чем даст трассировка стека (контекст и т. Д.)
Затем вы можете (если хотите) снова выдать исключение для вашей глобальной обработки ошибок "catch all", чтобы иметь дело с ней, но если это не тривиальный или неожиданный случай, вы должны проверять потенциальные исключения в источнике. Это особенно верно, когда код, который вы пишете, может вполне разумно вызвать исключение (обычно такие вещи, как файловый ввод-вывод и т. Д.), Но которые не обязательно указывают на фатальные ошибки.