Hir*_*ori 2 ruby exception rescue
如何在 Ruby 中将恢复写入循环?这是示例代码。
#!/usr/bin/ruby
#
a = [1,2,3,4,5]
begin
a.each{|i|
puts i
if( i==4 ) then raise StandardError end # Dummy exception case
}
rescue =>e
# Do error handling here
next # Resume into the next item in 'begin' clause
end
Run Code Online (Sandbox Code Playgroud)
但是,运行时,Ruby返回错误消息
test1.rb:13: Invalid next
test1.rb: compile error (SyntaxError)
Run Code Online (Sandbox Code Playgroud)
我正在使用 Ruby 1.9.3。
您应该使用retry而不是next; 但这会导致无限循环(retry从头开始重新启动begin)
a = [1,2,3,4,5]
begin
a.each{|i|
puts i
if i == 4 then raise StandardError end
}
rescue =>e
retry # <----
end
Run Code Online (Sandbox Code Playgroud)
如果您想跳过一个项目并继续下一个项目,请捕获循环内的异常。
a = [1,2,3,4,5]
a.each{|i|
begin
puts i
if i == 4 then raise StandardError end
rescue => e
end
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2560 次 |
| 最近记录: |