例外セーフ
「例外安全」とは、例外が発生したときに適切に処理されることを意味する言葉である。
「適切に」とは、リソースリークが発生しないことや、オブジェクトの内部状態の整合性が保たれるということである。
例外安全には以下に挙げる保証レベルがある。
基本的保証 (basic guarantee)
強い保証 (strong guarantee)
例外を投げない保証 (no-throw guarantee)
これらは包含関係にある。
「例外を投げない保証」を満たしていれば自動的に「強い保証」を満たす。
「強い保証」を満たすのであれば「基本的保証」を満たす。