我有一个访问器对象,它不可避免地是间歇性的。有时当它尝试一个 Action 时,它的内部崩溃并且需要在重新尝试 Action 之前重新启动。
写一个函数很容易:
def might_break
try_something_that_might_break
rescue
fix_it
might_break
end
当然,有一个计数器可以避免无限损坏。
但我想让事情保持干燥,我的每一个访问器方法都需要几乎相同的照顾。
我考虑过安全地
创建一个函数,它接受一个 block ,但我不确定如何让它返回父函数。
提前致谢!
最佳答案
你的意思是这样的吗?
def safely num, &block
count = 0
begin
block.call
rescue
count += 1
retry if count < num
end
end
使用 safely(5) {your_broken_method}
调用它
关于ruby - 编写 'If it doesn' t 工作的正确方法,修复它并在 Ruby 中重试'函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972311/