一個同事最近告訴我,這是一個反模式(record
是ActiveRecord
):這是一個錯誤處理反模式?
begin
record.save!
do_something_else
rescue => e
puts "Unable to save"
end
...我應該做這個:
if record.save
do_something_else
else
puts "Unable to save"
end
他的理由是我m使用流量控制的異常(我同意這很糟糕),但我相信這是一種典型的錯誤處理模式。
想法?
不要對控制流使用異常。提出異常要比檢查更爲昂貴。 – Makoto
相關/ dupe:https://softwareengineering.stackexchange.com/q/189222/54997 – Makoto