Исключения должны быть исключительными и не должны использоваться для управления потоком.
В зависимости от вашего приложения, если соединение уже существует, вы можете выбрать успешный пассивный возврат.
Если есть неправильные настройки, это исключение и должно выдавать исключение.
Что касается взаимодействия и подключения, если вы возвращаете bool, вам нужно спросить себя, придется ли потребителям обращаться и действовать иначе.на основе разных случаев ошибок.Есть две модели - если вы вернете bool, вам может потребоваться вернуть другую информацию (если она есть), если потребителям придется обрабатывать случаи по-другому.Обработка условий ошибки также не должна основываться на строковых сообщениях - вам нужны некоторые структурированные данные, такие как тип исключения или код ошибки.
При вызове обновления ...
Если соединение не существует, вы должны выбросить invalidOperationException, так как это ошибка программирования.
В случае ошибок соединения и взаимодействия он возвращается к двум шаблонам, которые я обсуждал выше.Если потребителям нужно обрабатывать разные случаи ошибок, вы можете либо вернуть bool с другой информацией, либо throw.
Лично я предпочитаю выдавать меньше исключений и ограничивать их ошибками программирования или действительно исключительными случаями.Например, если вы сохраняете объект, который нарушает бизнес-правило, это исключение?Вы можете утверждать, что, но я бы сказал, что для кого-то не является исключением, что кто-то заполняет форму и вводит в код что-то, что не соответствует правилам - это не исключение.чтобы присоединить отладчик с разрывом на исключение и при обычном использовании, ничего не должно быть выброшено.Он должен работать без ошибок.
Вот еще один пост SO об исключениях:
Попытка понять исключения в C #