异常信息异常安全

异常信息异常安全一段代码是异常安全的,如果这段代码运行时的失败不会产生有害后果,如内存泄露、存储数据混淆、或无效的输出

异常安全可分成不同层次:失败透明(failure transparency),也称作不抛出保证(no throw guarantee):代码的运行保证能成功并满足所有的约束条件,即使存在异常情况

如果出现了异常,将不会对外进一步抛出该异常

(异常安全的最好的层次)提交或卷回的语义(commit or rollback semantics),或称作强异常安全(strong exception safety)或无变化保证(no-change guarantee):运行可以是失败,但失败的运行保证不会有负效应,因此所有涉及的数据都保持代码运行前的初始值

基本异常安全(basic exception safety):失败运行的已执行的操作可能引起了副作用,但会保证状态不变

所有存储数据保持有效值,即使这些数据与异常发生前的值有所不同

最小异常安全(minimal exception safety)也称作无泄漏保证(no-leak guarantee):失败运行的已执行的操作可能在存储数据中保存了无效的值,但不会引起崩溃,资源不会泄漏

异常不安全(no exception safety):没有保证(最差的异常安全层次)

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关