C#中是否有一种方法可以测试语句执行是否在异常堆栈展开期间发生?

谢谢,
马塞洛。

编辑:
我的意思是这样的:

using (NewDbTransaction()) {
  //do some DB stuff here
} <-- here Dispose() of IDisposable is called

void DbTransactionWrapper.Dispose() {
  if (InException()) //is this possible???
    Rollback();
  else
    Commit();
}

最佳答案

只需捕获并抛出异常即可。

编辑:或者您的意思是“我如何在finally块中检测到异常”?在这种情况下,您可以在catch块中设置一个标志,然后在finally块中读取它。

09-07 01:00