Это зависит от того, что вы подразумеваете под Assert
.
. Вы можете использовать Debug.Assert (или Trace.Assert , если хотите, чтобы он также работал врежим выпуска).Однако это не так полезно, потому что останавливает программу и открывает диалоговое окно, пока пользователь не нажмет что-либо.Это не так хорошо для неконтролируемой системы.Поэтому в большинстве случаев я рекомендую вместо этого бросить, поскольку вы можете решить, как вы хотите реагировать на ошибку - остановите программу или просто войдите в систему и попробуйте продолжить.
Но если мы предположим, что ваш Assert
метод проверяет свой аргумент и, возможно, выдает исключение, тогда да, я думаю, что это хороший способ сделать это.
Фактически, чтобы выбрать пример, в morelinq Джона Скита используются оба метода,Например здесь :
public static IEnumerable<TSource> AssertCount<TSource>(
this IEnumerable<TSource> source,
int count,
Func<int, int, Exception> errorSelector)
{
source.ThrowIfNull("source");
if (count < 0) throw new ArgumentException(null, "count");
errorSelector.ThrowIfNull("errorSelector");
return AssertCountImpl(source, count, errorSelector);
}