-1

このシナリオを想像してください (単なるサンプル)

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

この状況をどのように処理できますか。私がやりたいことは、発生する可能性のある例外をキャッチしながら、例外が発生しないステートメントを実行できるようにすることです。つまり、同じ例外を発生させる可能性のある 3 つの行があります。これをどのように処理する必要がありますか? . メッセージを確認できますが、それでも最初の行で例外がスローされた場合、次の 2 行は実行されません。

関連する質問は、レスキュー ブロックをネストできますか (レスキュー ブロック内で例外をスローしてレスキューすることを意味しますか?)

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 に答える