在 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 block 中的异常”?在那种情况下,您可以只在 catch block 中设置一个标志并在 finally block 中读取它。
关于c# - 在语句执行期间测试堆栈展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4041133/