尝试catch inside finally子句

时间:2013-04-03 11:28:19

标签: c# exception-handling try-catch

我有一段看起来像这样的代码:

try
{
  // Do stuff
  operationInfo.success = true;
}
catch
{
  operationInfo.success = false;
  throw;
}
finally
{
  try
  {
     UploadToServer(operationInfo);
  }
  catch
  {
     // Suppress, it's ok if we can't upload to the server
  }
}

我的问题是,在这种情况下,如果在主try块中抛出异常,堆栈跟踪会发生什么,然后finally块实际上会抛出(并处理)UploadToServer方法中的另一个异常?您是否获得了引发的 last 异常的堆栈跟踪,或者它是否会正确冒泡?

我正在寻找一个解释,说明IL如何管理在幕后发生的事情,而不是简单的“是或否”答案。

THX。

0 个答案:

没有答案