デストラクタで初めて例外で悩むのではなくて、closeでほいほい例外を出さないように準備が必要だっていいたいの。

closeでどうしても例外が必要なら、それにつられてデストラクタで例外で悩むということになる。
デストラクタが悪いというよりも、close系のメソッドが例外を投げなくてすむようにしないと解決しないんじゃね?