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); } }
中在这个例子中,“finally”块包含对MessageBox.Show(message).
这个“finally”块总是执行吗?
不,它不会。仅当 try/catch 块退出时应用程序仍在运行时,“finally”块才会执行。具体来说,如果出现以下情况,它将不会执行:
需要注意的是, “finally”块旨在确保即使发生异常也能执行关键操作,例如资源清理或记录信息。然而,重要的是要意识到它可能不会在所有情况下执行,特别是灾难性的应用程序故障。
以上是C# `finally` 块总是执行吗?的详细内容。更多信息请关注PHP中文网其他相关文章!