1
我有一個對象,作爲其他幾個父對象。它有一個類似的方法:紅寶石 - 重構,以處理不同類型的錯誤
class Parent
def commit
begin
...
rescue => e
...
end
end
end
class ChildA < Parent
end
class ChildB < Parent
end
然而,ChildA
有一種獨特的方式來表現,當commit
拋出一個特定類型的錯誤,UniqueError
的。我可以覆蓋該功能的整個commit
文件,但是這感覺很尷尬。如果我需要更改begin
部分中的主體,它會給我帶來問題,因爲我現在需要在兩個地方更改它。
什麼是最簡潔的方式來重構呢?
如果有一個已知的異常,我需要從以一致的方式營救父類,例如從'ActiveRecord :: ResourceNotFound'救出?你可以有一個父母從一個錯誤中拯救,並且不知何故只是在Child類中擴展它? – Bryce