Сценарий

У нас есть параметр функции. Оно должно быть между значениями [0,1].

Должны ли мы генерировать исключение, если значение неверно?

Анализ

У нас есть два варианта.

Опция 1

Если значения выше диапазона, мы можем использовать 1, а если ниже диапазона, мы можем использовать 0.

Правильный подход зависит от того, как будет использоваться результат. Если это шумовая система, и мы знаем, что параметр может быть неправильным, и, что более важно, его удаление не вызовет негативных побочных эффектов, то отсутствие генерации исключения может привести к более приятному и удобному API.

Вариант 2

С другой стороны, если исключение указывает, что:

  1. Либо что-то не так с общей конструкцией системы (например, возможно, должно быть невозможно, чтобы значение вышло за пределы диапазона)
  2. Что-то критичное пошло не так — например, с системой управления полетом, и требуется внимание дизайнера/поддержки.

Если какое-либо отклонение от ожидаемого диапазона сигнализирует о каком-либо из вышеперечисленных действий, реализующих это:



Это пример из моего продукта оптимизации прибыли запасных частей. Это мой первый продукт, и я немного параноик по поводу проверки параметров: