Так как (начиная с FrameWork 1.1) логическое и "&&": "вычисляет только свой второй операнд, если необходимо."
Что не так с:
if(someStatement && someOtherStatement)
{
// more whatever
}
else
{
// raise an exception, call a method, show messagebox, whatever
}
В зависимости от сложности логической оценки, выполняемой, если первое предложение оценивается как true: и вы, возможно, реализуете множество других тестов, любое количество которых может привести к ошибкам : все из которых вы хочу обрабатывать идентичным образом: я бы посчитал обязательным либо вызвать конкретное исключение, либо вызвать метод для обработки ошибки, либо поместить все это в блок try-catch (что может быть довольно уродливо, если много код).
Низкий, грязный, подлый метод, который я бы использовал, если бы имелось разумное предположение, что вероятность ошибки была довольно далека в 99% случаев, когда вызывался код: я бы установил логический флаг для отражения ошибки. состояние: оцените его по завершении сложного блока кода и сделайте то, что нужно было сделать: конечно , если ваш код где-то ответвляется в результате этих внутренних вычислений : это было бы нехорошо.