-->

如果两个渔获物和finally块抛出异常,会发生什么?(What happens if both c

2019-07-19 18:15发布

如果两个渔获物和finally块抛出异常,会发生什么?

Answer 1:

finally块抛出一个异常,这将有效地隐藏从抛出的异常catch模块并最终引发的一个。 它抓住时,无论是记录异常,或确保finally块本身并不抛出异常是非常重要的,否则你可以得到异常被抛出被扼杀从来没见过。



Answer 2:

当捕捉抛出一个异常,finally块将有一个异常运行,然后退出。 如果finally块抛出一个异常,该块将异常退出。



Answer 3:

抛出的最后一个异常被抛出。



Answer 4:

它已经被adrianbanks回答得很好,但下面的帖子应该是有趣的: 有趣的例外结果:引发异常从finally块



Answer 5:

HI Nwaman我认为你的答案是错的我已经在Windows appliaction测试它,我发现如果u写像下面的一个程序

try
{
    string s = "hu";
    int i = int.Parse(s);
}
catch (Exception ex)
{
    string s = "hu";
    int i = int.Parse(s);
    throw new Exception();
}
finally
{
    MessageBox.Show("hi");
}

这将不会导致最终EXCUTE,



文章来源: What happens if both catch and finally blocks throw exception?