У меня есть метод, который должен что-то делать, а возвращаемое значение - логическое (успех / сбой).
Если метод не работает, есть несколько причин, вызывающих сбой вызывающего (пользователя)Уровень интерфейса) можно использовать для отображения соответствующего сообщения пользователю (таким образом, пользователь может решить проблему).
Я думал о создании исключений с соответствующим сообщением, но причины сбоя являются частью нормального пути выполнения (почти20% -й шанс произойти по сравнению с успехом метода).Таким образом, исключения не имеют смысла.
Другая опция определяет перечисление и использует его для информирования вызывающей стороны о причине сбоя (используя Tuple
в качестве возвращаемого типа или добавляя параметр out
).Я не видел такого дизайна раньше!
Как лучше всего сообщить вызывающему абоненту о причине сбоя?