想象一下这个场景(只是一个样本)
file = open("/file1")
file2 = open("/file2")
file3 = open("/file3")
我如何处理这种情况,我想要做的是允许不会引发异常运行的语句,同时捕获它们可能出现的任何异常,换句话说,我有3行可以引发相同的异常,应如何处理。我可以查看消息,但是如果第一行抛出异常,则接下来的两行不会运行。
一个相关的问题是我可以拥有一个嵌套救援区块(意味着在救援区内投掷和救援一个例外吗?)
答案 0 :(得分:1)
您可能需要针对此特定情况的循环:
open_files = ['file1', 'file2', 'file3'].map do |file|
begin
File.open file
rescue => e
...
end
end
答案 1 :(得分:0)
好吧,想通了。 不是最聪明的问题! 只需用不同的方法对它们进行调用即可。
Loadfile1()
Loadfile2()
Loadfile3()
loadfile1()
file1 = open("/file1")
rescue......
...
end