Ruby 错误处理与代码格式化:最佳实践指南
1. 电路断路器的设置与使用
在应用程序中,可以设置电路断路器(Circuit Breakers),它们通常是单例对象,以常量形式实现。以下是设置和使用电路断路器的示例:
RECOMMENDER_CIRCUIT = BrokenCircuit.new
AD_CIRCUIT = BrokenCircuit.new
@recommendations = RECOMMENDER_CIRCUIT.check do
recommender_service.call(timeout: 3)
end
@ads = AD_CIRCUIT.check do
ad_service.call(timeout: 3)
end
process_payment
不过,生产环境中的电路断路器设计通常比上述示例更复杂,建议使用 Ruby 的电路断路器 gem,而非自行实现。
2. 异常类层次结构设计
在编写库并抛出异常时,使用自定义异常子类很有用。例如,传递对象给方法时,若对象不被允许则应抛出异常。以下是一个简单示例:
def foo(bar)
unless allowed?(bar)
raise "bad bar: #{bar.inspect}"
end
end
但这种方法会抛出 RuntimeError ,不是最佳实践。更好的做法是抛出与库相关的异常类,这样库的用户就能将
超级会员免费看
订阅专栏 解锁全文
956

被折叠的 条评论
为什么被折叠?



