-1

想象一下这种情况(只是一个示例)

file = open("/file1")
file2 = open("/file2")
file3 = open("/file3")

我该如何处理这种情况,我想要做的是允许不引发异常的语句在捕获任何可能引发的异常时运行,换句话说,我有 3 行可以引发相同的异常,应该如何处理. 我可以检查味精,但如果第一行抛出异常,接下来的两行将不会运行。

一个相关的问题是我可以嵌套救援块(意味着在救援块内抛出和救援异常吗?)

4

2 回答 2

1

对于这种特定情况,您可能需要一个循环:

open_files = ['file1', 'file2', 'file3'].map do |file|
  begin
    File.open file
  rescue => e
    ...
  end
end
于 2012-08-21T09:38:25.450 回答
0

嗯,想通了。不是最聪明的问题!只需使用不同的方法并调用它们即可。

Loadfile1()
Loadfile2()
Loadfile3()

loadfile1()
file1 = open("/file1")
rescue......
...
end
于 2012-08-21T04:25:32.350 回答