サンプル
Class::~Class() {
// メモリーへの参照をクリーンアップします...
int
error = cleanUp();
if
(error)
{
throw
str;
}
logDestruction();
// 例外をスローする場合があります
}
ソリューション
すべての例外をキャッチすることで、どの例外もデストラクターを残さないようにします。
Class::~Class() {
try
{
// メモリーへの参照をクリーンアップします
delete
pointer;
logDestruction();
}
catch
( ... ) {
// ここですべてのエラーをキャッチします
}
}