強い保証とは、関数が呼ばれた後の状態が呼ばれる前の状態か正しく処理が完了したかのどちらかしかない関数の処理を指す。基本的な保証とは、内部のリソースが正しく処理され、データ構造も整合性を保っている事を指す。しかし、一部のみの更新が行なわれるなど、データの状態としては正しくない事もあり得る。もちろん一番良いのは例外を投げない事である。
投げる例外を明示的に示す場合は以下の様に行なう。
int doSomething() throw(std::bad_alloc);
また、throw の中が空なのは例外を投げないのではなく、投げられた場合の例外がとても深刻なのを示す。
int doSomethingElse() throw();
セコメントをする