範例
Class::~Class() {
// 清除指向記憶體的參照...
int
error = cleanUp();
if
(error)
{
throw
str;
}
logDestruction();
// 可能擲出異常狀況
}
解決方案
請擷取所有異常狀況,以確保沒有任何異常狀況保留解構子。
Class::~Class() {
try
{
// 清除指向記憶體的參照
delete
pointer;
logDestruction();
}
catch
( ... ) {
// 在此擷取所有錯誤
}
}