Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当内部抛出错误时,如何使循环完成?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 当内部抛出错误时,如何使循环完成?

Ruby on rails 当内部抛出错误时,如何使循环完成?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,如果我有一个循环,并且在循环中的某个地方,我会得到一个异常或错误。如何保持循环 Foos.each do |foo| .... # Random error/exception thrown here .... end 我是否应该在循环中设置rescue块?这会使循环结束吗?或者有更好的替代方法吗?您可以使用添加开始/救援块。我不确定是否有其他方法可以在出现错误时保持循环 4.times do |i| begin raise if i == 2 puts i

如果我有一个循环,并且在循环中的某个地方,我会得到一个异常或错误。如何保持循环

Foos.each do |foo|
  ....
  # Random error/exception thrown here
  ....
end

我是否应该在循环中设置
rescue
块?这会使循环结束吗?或者有更好的替代方法吗?

您可以使用添加
开始/救援
块。我不确定是否有其他方法可以在出现错误时保持循环

4.times do |i|
  begin
    raise if i == 2
    puts i
  rescue
    puts "an error happened but I'm not done yet."
  end
end
# 0
# 1
# an error happened but I'm not done yet.
# 3
#=> 4
因为另一方面你的标题要求一种结束循环的方法。
如果希望循环在
救援
中结束,可以使用
中断

4.times do |i|
  begin
    raise if i == 2
    puts i
  rescue
    puts "an error happened and I'm done."
    break
  end
end
# 0
# 1
# an error happened and I'm done.
#=> nil