c# - .Net Framework:未捕获异常时未调用 finally 块
问题描述
一个简单的控制台应用程序,在 Visual Studio 2019、.Net Framework 4.7、Windows 中:
static void Main(string[] args)
{
try
{
Console.WriteLine("In try");
throw new IndexOutOfRangeException();
}
finally
{ *// Surprisingly this part is not being executed.*
Console.WriteLine("In finally");
Console.ReadLine();
}
}
我确信在 NO Exception 和 YES Exception 的情况下会调用 finally 块。我在文档中读过:
但是,如果异常未处理,finally 块的执行取决于异常展开操作的触发方式。反过来,这取决于您的计算机的设置方式。
Link 好吧,我很困惑。我是否需要对这个“展开操作”进行一些操作,以便在出现未处理的异常时最终会被调用?
解决方案
推荐阅读
- java - Android Studio 中的错误和模拟器问题
- firebase - 在颤动的文本字段中显示值
- java - 将gridview与其他项目一起使用时滚动整个屏幕
- python - 来自 HTML 颜色的 seaborn 发散 cmap 调色板
- javascript - 如何对数组中的相同元素进行分组
- selenium - 使用 Selenium Web 驱动程序和 Firefox 时出现空白页
- javascript - 在 HTML 视图中的特定文本之前添加行距
- api - 拥有一个 facebook 业务管理帐户来使用 WhatsApp Business API 是否有必要?
- sql - 如何从带有条件的sql表中删除重复项
- delphi - 如何启用多个位按钮?