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块中读取它。