Переменная ErrorString выглядит подозрительно, как переменной код ошибки. Рекомендуемая практика заключается в том, чтобы использовать исключения для передачи информации об ошибке непосредственно, где это необходимо, вместо того, чтобы хранить вещи в кодах ошибок.
Вы эффективно выполняете то же самое с вашей ErrorString, как и было, если бы вы просто позволили исключению быть пойманным вызывающим: удаление ответственности за ответ на ошибку из самого метода. Это хорошая цель. Но использование строки ошибки не поможет вам в использовании исключения. Фактически, вы теряете информацию таким образом. Существует несколько типов ошибок, которые могут возникнуть, и многие из них имеют особые исключения, связанные с ними, со своими собственными специальными свойствами для хранения контекстной информации об ошибке. Просто сохраняя сообщение в строке, вы теряете эту информацию.
Таким образом, если ваша цель специально не скрывать тип ошибки, возникающей от вызывающего абонента, вы можете получить ее только путем исключения исключения.
Другое дело, действительно ли это сценарий ошибок. Если это так, очень маловероятно, что ваш метод вызова будет вообще заботиться о том, что такое возвращаемое значение. В этом случае вам не о чем беспокоиться, просто позволяя исключению идти и ничего не возвращать. Если это не сценарий с ошибкой, а вызывающий абонент просто продолжит работу и сделает что-то еще, ну, это для звонящего, чтобы решить, правильно? По-прежнему не так много преимуществ получить, возвращая строку ошибки и фиктивный DataTable или нуль, перебрасывая исключение со всей информацией о его контекстуальной ошибке.
«Поэтому, когда у меня есть методы с возвращаемыми значениями, я не использую блок try-catch, что является плохой практикой». говорит кто? Большинство методов возвращают значения, не будучи обернутыми в блоки try. –
Избиты на 20 секунд! В самом деле, что я собираюсь сказать; если есть исключение - ЕСЛИ вы этого не ожидаете и можете сделать что-то полезное, пусть оно пузырится к вызывающему. –
Существенные проблемы с глотанием - вот настоящая проблема. –