首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

9.64 尽力保证错误失败的原子性

2013-08-27 
9.64 尽力保证异常失败的原子性异常失败的原子性指如果调用对象的方法抛出了异常,那么此对象的状态应与抛

9.64 尽力保证异常失败的原子性

异常失败的原子性指如果调用对象的方法抛出了异常,那么此对象的状态应与抛出异常前相同。即对象状态不因为抛出异常而改变,只有这样,调用者才可能在捕获异常后进行恢复。

?

保证异常失败的原子性可能的方式包括:

1.执行运算前(这里指执行能够修改对象状态的运算)先检查条件,如检查输入参数值,对象属性。如果不满足条件则触发异常。

?

2.如果不能检查运算条件,那么应该执行可能触发异常的运算,再执行需要修改对象状态的运算

?

3.在异常触发后执行修复代码,适用于基于硬盘的数据操作,如文件和数据库

?

4.复制对象并对其进行运算,如果触发异常不会影响原对象。适用于复制对象不会明显降低性能或增加内存占用的情况(一般来说复制对象可以提高运算速度,但是会增加内存占用)

?

如果不能保证异常失败的原子性,那么应在注释里详细说明。一般在多线程的情况下,较难保证异常失败的原子性

?

?

热点排行