によって例外オブジェクトを投げるのは良いですまあ、私は例外処理の間違いを避けることについて語っthis記事を読んでてきた、それは罰金だが、私は明確化のために立ち往生一点は、それがは、それが参照
を言われていると、あります例外がスローされ、コントロールがtryブロックから ハンドラに渡されると、C++ランタイムは、tryブロックの開始以降に構築されたすべての自動オブジェクト のデストラクタを呼び出します。
そして、それは一見のキャッチを参照することにより、オブジェクトを投げ示唆している別のポイント、それはメモリ管理やコピーを避けるため、お勧めしているものと比較するとき、どのような私には奇妙に思えることは
try
{
Object o;
//make error..
throw ref(o);
}catch(Object & p)
{
//do some handle..
}
です上のようなコードを使って行ってもいいと思うが、try内に構築されたすべてのオブジェクトがスローに到達したときに解体されるわけではない。
投げ値を(寿命の問題を回避するために)値でオブジェクトを投げるとキャッチすべきです。参照をキャッチします。 –
何ですか?参照:「間違い#6:価値によって例外を投げない」 –