1. ホーム
  2. c#

[解決済み] C#の "finally "ブロックは常に実行されるのか?重複

2023-07-04 20:26:32

質問

重複の可能性があります。

Try ブロックで値を返した場合、Finally ステートメント内のコードは発火しますか?

次のようなC#のコードを考えてみましょう。"finally"ブロックは実行されますか?

public void DoesThisExecute() {
   string ext = "xlsx";
   string message = string.Empty;
   try {
      switch (ext) {
         case "xls": message = "Great choice!"; break;
         case "csv": message = "Better choice!"; break;
         case "exe": message = "Do not try to break me!"; break;
         default:
            message = "You will not win!";
            return;
      }
   }
   catch (Exception) {
      // Handle an exception.
   }
   finally {
      MessageBox.Show(message);
   }
}

は、私はこれを書き終わった後、私はVisual Studioで自分自身でこれをテストすることができたことに気づいた。しかし、どうぞお気軽にお答えください!

どのように解決するのですか?

はい、そうです:-) http://msdn.microsoft.com/en-us/library/zwc8s4fz.aspx