В текущий момент наличие только двух выходов (good - bad) из C# блока является неудобным.
Даже допустим просто отловить несколько разных ошибок на одном этапе, необходимо создать доп переменную, в которую ложить текст ошибки и потом создавать свич который будет выводить к нужному блоку в зависимости от значения.
А если в блоке делать подразумевать два выхода по каким-то данным. Делая второй выход через ручной throw new Exception(); то любая ошибка в блоке тоже будет выходить через этот путь.
В результате куча блоков проверок на входе, на выходе и всё равно все ошибки не получается отловить.
Пусть у C# блока будет много выходов как у switch блока, в зависимости от возвращаемого значения.
Даже допустим просто отловить несколько разных ошибок на одном этапе, необходимо создать доп переменную, в которую ложить текст ошибки и потом создавать свич который будет выводить к нужному блоку в зависимости от значения.
А если в блоке делать подразумевать два выхода по каким-то данным. Делая второй выход через ручной throw new Exception(); то любая ошибка в блоке тоже будет выходить через этот путь.
В результате куча блоков проверок на входе, на выходе и всё равно все ошибки не получается отловить.
Пусть у C# блока будет много выходов как у switch блока, в зависимости от возвращаемого значения.