デストラクタから例外を投げる
ほとんどの人が言うん未定義の動作結果そう-デストラクタの外に例外をスローしません。Stroustrupは、「ベクターデストラクタはすべての要素に対して明示的にデストラクタを呼び出す。これは、要素デストラクタがスローすると、ベクトルの破棄が失敗することを意味する...デストラクタからスローされる例外から保護するための適切な方法は実際にはないため、ライブラリ要素デストラクタがスローした場合の保証はありません」(付録E3.2から)。 この記事はそうではないようです-投げるデストラクタは多かれ少なかれ大丈夫です。 だから私の質問はこれです-デストラクタからスローすると未定義の動作が発生する場合、デストラクタ中に発生したエラーをどのように処理しますか? クリーンアップ操作中にエラーが発生した場合、それを無視しますか?スタックを処理できる可能性があるが、デストラクタで正しく処理できないエラーの場合、デストラクタから例外をスローするのは理にかなっていますか? 明らかにこれらの種類のエラーはまれですが、可能です。