Пустой блок захвата, подобный показанному, не должен использоваться.
Например, код в вашем вопросе также будет перехватывать OutOfMemoryException, StackOverflowException, ExecutionEngineException, AccessViolationException и ThreadAbortException (хотя последний будет переброшен в конце блока catch). Он даже будет ловить объекты, которые не являются производными от System.Exception (редко, но возможно в управляемых C ++ и JavaScript ... в CLR любой объект может быть «брошен», но C # ограничивает вас типами, производными от Exception).
Если в вашем примере вы используете сторонний COM-объект, который иногда дает сбой и вас не волнует этот сбой, вы должны вместо этого перехватить (COMException) {}, чтобы другие более серьезные сбои всплыли 'и могут быть зарегистрированы и / или исправлены.
Важно отлавливать только те исключения, с которыми вы действительно можете что-то делать (в этом случае вы явно решаете ничего не делать с исключениями, возникающими из CallMethod (), и я согласен, что для этого следует добавить комментарий. дизайнерское решение). Следуя этому руководству, вы не допускаете, чтобы другие ошибки и проблемы в коде или среде выполнения оставались незамеченными.