我正在考虑流量控制的最佳实践。我应该走哪条路?Ruby流控制:抛出异常,返回零或让它失败?
1)不检查任何东西,让程序失败(干净的代码,自然错误消息):
def self.fetch(feed_id)
feed = Feed.find(feed_id)
feed.fetch
end
2)通过返回零失败默默(但是,“清洁守则”说,说你不应该返回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方法并让它们抛出异常,如果发生错误,会更好?
如果这个ActiveRecord,'find'会在id不存在时触发,'find_by_id'不会触发。 – tokland