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); } }
Inこの例では、「finally」ブロックに次の呼び出しが含まれています。 MessageBox.Show(message).
この「finally」ブロックは常に実行されますか?
いいえ、実行されません。 「finally」ブロックは、try/catch ブロックが終了した時点でアプリケーションがまだ実行中の場合にのみ実行されます。具体的には、次の場合には実行されません。
「finally」ブロックは、例外が発生した場合でも、リソースのクリーンアップや情報のログ記録などの重要なアクションが確実に実行されるように設計されています。ただし、すべてのシナリオ、特にアプリケーションの致命的な障害で実行されるわけではないことに注意することが重要です。
以上がC# の「finally」ブロックは常に実行されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。