Re[4]: Опять про исключения бизнес-процесса (2017 год)
От: Shmj Ниоткуда  
Дата: 01.11.17 07:55
Оценка:
Здравствуйте, yenik, Вы писали:

Y>

Y>X DO NOT use exceptions for the normal flow of control, if possible.


Дык... в том то и дело -- в нормальном случае операция проходит и вы отгружаете товар. А если перевести средства не удалось, то это не стандартная ситуация.

Вот, даже наш местный MVP, спец. по guidelines, рекомендует юзать Exception: http://rsdn.org/forum/philosophy/6951261.1
Автор: gandjustas
Дата: 01.11.17


Получается есть таки 2 лагеря?

Y>Видятся варианты.


Y>1)

Y>TransferValidationResult ValidateTransfer(int toAccount, decimal amount);
Y>long Transfer(int toAccount, decimal amount); // бросает исключение при неуспехе

Пред. проверка обычно проходит иначе. Прежде чем пользователь переводит со счета, он видит остаток. Если там 0, то вы просто не отобразите кнопку "перевести средства" в GUI. Если попытается ввести сумму больше, то вы на уровне проверки вводимых данных не дадите этого сделать.

По этому метод Transfer в обычной ситуации отработает, ведь пред. проверки делаютя в любом случае.

Y>2)

Y>bool TryTransfer(int toAccount, decimal amount, out TransferValidationResult transferValidationResult);

Вот, никогда не видел ничего подобного. В обычном случае операция проходит, ведь пред. проверки делаются всегда.
=сначала спроси у GPT=
Отредактировано 01.11.2017 7:56 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.