如何确保try代码块中的所有代码都完全执行或失败

时间:2012-11-21 15:24:38

标签: c#

请有任何方法可以确保 c#尝试代码块中的所有代码都执行或完全失败。

2 个答案:

答案 0 :(得分:2)

就您的代码进行事务处理而言,无法确保try块中的所有内容都将一起执行。

相反,在catch块中,您需要以某种方式恢复状态,或者回滚更改。

我建议在内存中存储重要的重要内容(如果您担心应用程序完全失效,则存储磁盘),然后在catch语句中恢复状态信息。

答案 1 :(得分:0)

根据我的猜测,你的try区块中有很多事情要发生。类似的东西:

try
{
     Func1();
     Func2();
}

现在,在这个例子中,您希望两个函数都通过或失败。因此,如果Func1()失败,您仍然希望它呼叫Func2()。问题是如果Func1()失败,则块失败。没有办法解决这个问题。如果第一部分失败,继续没有意义,所以Func2()甚至不会被调用。如果情况确实如此,那么您必须为每个函数使用if语句或try catch