異常安全(exception-safe)指的是:
- 沒有資源泄露此再,這里的資源包括內(nèi)存抑月、文件句柄违崇、鎖……
- 數(shù)據(jù)沒有敗壞,比如不會(huì)有野指針的出現(xiàn)……
基于異常安全的定義靴跛,有三種級(jí)別的異常安全承諾:
- 最基本承諾缀雳。這種承諾其實(shí)就是上述異常安全的定義,即不會(huì)泄露資源梢睛,并且程序內(nèi)部一切邏輯肥印、變量是自洽的识椰。雖然程序內(nèi)部自洽,但是可能異常引發(fā)了一些變量的改變深碱,我們并不清楚程序到底發(fā)生了哪些改變腹鹉,為此我們還需要親自去檢查是哪些變量發(fā)生了改變
- 強(qiáng)烈承諾。即:若有異常拋出莹痢,則程序在異常發(fā)生前后保持一致;若無(wú)異常拋出墓赴,則程序狀態(tài)如預(yù)期那樣被修改
- 不拋出異常承諾竞膳。即程序總是可以完成預(yù)期的任務(wù),絕不拋出異常