如果两个渔获物和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?