Я думаю о лучших методах управления потоком. Куда мне идти?
1) Ничего не проверяйте и дайте программе завершиться ошибкой (более чистый код, естественные сообщения об ошибках):
def self.fetch(feed_id)
feed = Feed.find(feed_id)
feed.fetch
end
2) Произойдет ошибка, возвращающая nil (однако, "Чистый код" говорит, что вы никогда не должны возвращать null) :
def self.fetch(feed_id)
return unless feed_id
feed = Feed.find(feed_id)
return unless feed
feed.fetch
end
3) Выбрасывать исключения (потому что невозможно найти фид по id):
def self.fetch(feed_id)
raise ArgumentError.new unless feed_id
feed = Feed.find(feed_id)
raise ArgumentError.new unless feed
feed.fetch
end
Другими словами: следует ли мне активно использовать охранные условия, или лучше полагаться на методы Ruby/Rails и пусть они выдают исключение, если что-то не так?