・dtorではエラーチェックはするが例外は投げない。どうするかはケースバイケース。
・終了処理用のmethodを別途作る。こちらは必要な例外を投げる。

と作っておき、エラーハンドリングをきちんとしたい時は2でやる。
簡便にやりたい時は1で済ませる。

というのはもはや定法です。