Как сообщить звонящему о причине сбоя - PullRequest
2 голосов
/ 20 февраля 2011

У меня есть метод, который должен что-то делать, а возвращаемое значение - логическое (успех / сбой).

Если метод не работает, есть несколько причин, вызывающих сбой вызывающего (пользователя)Уровень интерфейса) можно использовать для отображения соответствующего сообщения пользователю (таким образом, пользователь может решить проблему).

Я думал о создании исключений с соответствующим сообщением, но причины сбоя являются частью нормального пути выполнения (почти20% -й шанс произойти по сравнению с успехом метода).Таким образом, исключения не имеют смысла.

Другая опция определяет перечисление и использует его для информирования вызывающей стороны о причине сбоя (используя Tuple в качестве возвращаемого типа или добавляя параметр out).Я не видел такого дизайна раньше!

Как лучше всего сообщить вызывающему абоненту о причине сбоя?

1 Ответ

2 голосов
/ 20 февраля 2011

Нет ничего постыдного в том, что протокол исключений для случая 20% не является критическим с точки зрения производительности.Передача массива, в который выводится статус, работает, но выглядит ужасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...