我正在考虑流量控制的最佳实践。我应该走哪条路?
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 方法并让它们在发生错误时抛出异常更好?