Сценарий
У нас есть параметр функции. Оно должно быть между значениями [0,1].
Должны ли мы генерировать исключение, если значение неверно?
Анализ
У нас есть два варианта.
Опция 1
Если значения выше диапазона, мы можем использовать 1, а если ниже диапазона, мы можем использовать 0.
Правильный подход зависит от того, как будет использоваться результат. Если это шумовая система, и мы знаем, что параметр может быть неправильным, и, что более важно, его удаление не вызовет негативных побочных эффектов, то отсутствие генерации исключения может привести к более приятному и удобному API.
Вариант 2
С другой стороны, если исключение указывает, что:
- Либо что-то не так с общей конструкцией системы (например, возможно, должно быть невозможно, чтобы значение вышло за пределы диапазона)
- Что-то критичное пошло не так — например, с системой управления полетом, и требуется внимание дизайнера/поддержки.
Если какое-либо отклонение от ожидаемого диапазона сигнализирует о каком-либо из вышеперечисленных действий, реализующих это:
Это пример из моего продукта оптимизации прибыли запасных частей. Это мой первый продукт, и я немного параноик по поводу проверки параметров: