>>319
> 例外投げられたら deleteされるので。
そうは言えない。

T x = initial_value;
try
{
 x = new_value;
}
catch( ... )
{
}
// x はまだ生きている。
// ここで x の値は initial_value か new_value か、どちらかであると言えなければ、
// 以降、 x へアクセスしたときの動作が把握できない。