我正在考慮流量控制的最佳實踐。我應該走哪條路?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