0
這裏是處理異常紅寶石中的異常處理 - 向下或在頂層?
首先
def prep_food
get_veggies()
get_fruits()
rescue Exception => e
# => do some logging
# => raise if necessary
end
def get_veggies()
# gets veggies
end
def get_fruits()
# gets fruits
end
二
def prep_food
get_veggies()
get_fruits()
end
def get_veggies()
# gets veggies
rescue Exception => e
# => do some logging
# => raise if necessary
end
def get_fruits()
# gets fruits
rescue Exception => e
# => do some logging
# => raise if necessary
end
在頂層,其中作爲第二種方式做它深處的第一個處理異常的方法有兩種。 這兩者之間有什麼區別,程序員應該在什麼時候選擇它們?
如果我不能「修復」一個異常,捕獲它有什麼意義? 我更喜歡自己去捕捉特定的例外。但在某些情況下,我會捕獲所有異常並將它們寫入日誌,然後重新提升。這裏只是一個例子,問題不是針對特定的異常,而是針對捕捉異常的位置。 – Vizkrig
同意:記錄和重新提升可能是處理異常的有效方法。在某些特殊情況下,即使忽略也可能會好起來。這取決於... – spickermann