コンストラクタで例外使うとcatch中にデストラクタと同じコードが必要になるんじゃないの?