我的python代码看起来像这样-
try:
statement1
statement2
statement3
except Exception:
handleException
问题是,如果statement3生成异常,那么statement1和statement2的效果已经发生,并且我无法在except
部分中撤消它们。有没有一个简单的方法来写这样的东西-
check if the following block runs without exceptions:
statement1
statement2
statement3
if yes:
run entire block
if no:
handleException
(基本上类似于Python代码的事务原子性)。你知道吗
你要做的是让Python做一些事情,看看它是否有效,然后做它,否则,一开始就不做它。这违反了因果关系。你知道吗
为了处理这类问题,我们通常使用上下文管理器,例如:
如果它们写得好的话,在发生异常时应该为您处理回滚部分。你知道吗
用一个特别的武断的说法,不
如果必须有这样的细粒度撤消,最好使用命令模式在块中写入项,在继续进行每个操作时为每个操作堆叠一个撤消操作。如果你到了最后,一切正常,你擦堆栈,删除所有的撤消;如果你有一个例外,你弹出一个又一个撤消堆栈,并反向执行,以恢复原始状态。你知道吗
相关问题 更多 >
编程相关推荐