>>302
コンストラクタが実行される場所を全部tryの中に書いていれば平気かもしれないけれど、それじゃめんどくさいだろう。
エラーが発生したとしても安全にリカバリーできる気がしない。

c++の話をすれば、コンストラクタでは単純な初期化だけにするというのが習慣になってる。
c++11で改善されたけど複数のコンストラクタを持つときも都合悪いしね。
生成を伴ったり、初期化で失敗する処理は、ちゃんと初期化関数作った方が都合いい。