在救援块后重新控制对线,如果开始会引发Ruby中的错误



是否有任何方法可以在执行救援块之后重新开始控制块,例如

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

相关内容

最新更新