Должен ли я проверить параметры метода в Ruby?

У меня есть фон Java и в Java, когда программист вызывает метод с неправильными параметрами, будет выдано исключение. Как Ruby-программисты обрабатывают неверные аргументы метода?

Два противоположных примера из базовых классов:

irb(main):009:0> "" * (-2)
ArgumentError: negative argument
        from (irb):9:in `*'
        from (irb):9
        from C:/Ruby/Ruby193/bin/irb:12:in `<main>'


irb(main):013:0> (-2).times { puts 'hello' }
=> -2

1 ответ

Я обычно стараюсь избегать проверки аргументов в Ruby.

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

Также это зависит от вашего варианта использования:

  • Это публичные API? Вы можете строго рассмотреть вопрос о проверке.
  • Это частные API / методы? Ну, я бы вообще доверял программисту.

Подходящим подходом может быть использование проверки аргументов на этапе отладки, полезное для обнаружения ошибок и неправильного использования API, а затем - после проверки - удалить проверки.

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

Другие вопросы по тегам