请有任何方法可以确保 c#尝试代码块中的所有代码都执行或完全失败。
答案 0 :(得分:2)
就您的代码进行事务处理而言,无法确保try
块中的所有内容都将一起执行。
相反,在catch
块中,您需要以某种方式恢复状态,或者回滚更改。
我建议在内存中存储重要的重要内容(如果您担心应用程序完全失效,则存储磁盘),然后在catch语句中恢复状态信息。
答案 1 :(得分:0)
根据我的猜测,你的try
区块中有很多事情要发生。类似的东西:
try
{
Func1();
Func2();
}
现在,在这个例子中,您希望两个函数都通过或失败。因此,如果Func1()
失败,您仍然希望它呼叫Func2()
。问题是如果Func1()
失败,则块失败。没有办法解决这个问题。如果第一部分失败,继续没有意义,所以Func2()
甚至不会被调用。如果情况确实如此,那么您必须为每个函数使用if
语句或try catch
。