是否有任何方法可以在执行救援块之后重新开始控制块,例如
begin
.....
error(not intended but happening intermittently)
things to execute
rescue
describe error
end
有什么办法可以在describe error
things to execute
预先感谢
Ruby中没有类似goto
的结构(幸运的是)。而且由于begin-rescue-end
块,无法使用catch-throw
。因此,您可以尝试这样的事情:
def error_handler
# if this method will raise an error it's possible to catch it here
# with `rescue` or (and) `ensure`
p :finalize
end
def one
1 / rand(0..3)
rescue
error_handler
end
def two
1 / rand(0..3)
rescue
error_handler
end
def three
1 / rand(0..3)
rescue
error_handler
end
begin
one
two
three
1 / rand(0..3)
rescue => error
error_handler
end