Я думаю, вы, возможно, немного упускаете из виду основы исключений и обработки исключений.
Золотое правило исключений заключается в том, что они должны быть исключительными.
Вот почему вы, возможно, видели или читали, что вам никогда не следует перехватывать базовое исключение - ваш код просто не сможет обработать каждый раз исключение.
Так что, как правило, вы должны ловить исключения, только если вы можете обрабатывать их особым образом. Например, если вы читаете данные пользователя из файла, и это не удается, вы можете выбрать, чтобы вернуть нового пользователя. То, что вы не хотите делать, это просто перехватить исключение и записать его. Это приводит к тому, что приложение является надежным, но просто проглатывает ошибки, что приводит к крайне плохой работе пользователя.
Если ваш метод не может обработать исключение, он просто не должен его перехватывать и отложить обработку исключения до более высокого уровня. Обычно это означает, что сообщение об ошибке будет отображаться пользователю (на верхнем уровне).