实施“救援”而无需“下一步”

时间:2018-10-04 15:15:56

标签: ruby

我有这个示例来处理错误并继续执行代码:

begin
  p '-' * 100
  request_builder.new(env: tested_env).submit!
rescue => error
  error_logs << "#{error}\n#{error.backtrace.first(5).join("\n")}"
  next
end

如何在没有next的情况下重写代码?

我找到了这个例子:

%w(1 2).each do |x|
  p x
  begin
    raise 'something'
  rescue => error
    p error
  end
end
=>
"1"
#<RuntimeError: something>
"2"
#<RuntimeError: something>

如何将其用于实现代码?

1 个答案:

答案 0 :(得分:0)

您的下一个示例与正常救援块无关。它只是告诉转到下一个迭代。因此,删除下一​​条语句即可找到。

begin
  p '-' * 100
  request_builder.new(env: tested_env).submit!
rescue => error
  error_logs << "#{error}\n#{error.backtrace.first(5).join("\n")}"
  # next # removing next, removes you error, 
         # you just put whatever you want in your rescue block, 
         # the application continues in this block
end