例外を投げるときは、オブジェクトの状態を元に戻すって教わったのですが
C言語の FILE をラップしたようなクラスで
fclose がエラーを返した場合、例外を投げるとすると
もう一度クローズ処理が出来る用にしないといけないのでしょうか?

その場合、C言語の fclose は1度目の呼び出しで失敗した場合も
エラーを返してファイルをクローズしてしまうため、再びクローズを試みることが
出来ないのだけど、どうすればいいんでしょうか?