私は多くのことを行うオブジェクトを持っており、何が起こったのかについての統計を表示する TidyUp() メソッドを呼び出して終了します。
内部テストの一環として、これらのオブジェクトがいつ作成されたかを検出したかったのですが、プログラムが終了する前に片付けられず、その場合は終了しました。
そこで、TidyUP() で設定されるオブジェクトにフラグを追加し、このフラグが設定されていない場合に死ぬクラスの DESTROY サブルーチンを追加しました。
これはすべて正常に機能しますが、残念な副作用があります。プログラムで何か他の問題が発生し、die が呼び出されると、グローバルな破壊が私の DESTROY を起動し、オブジェクトが整理されていないことに気づき、死亡します。問題は、この時点で元のダイ メッセージが失われていることです。
したがって、破壊がダイの結果として発生したのか、それとも通常のプログラムの終了によるものなのかを検出し、後者の場合にのみ新しいダイを追加したいと思います。
Perl でのグローバル破壊の検出を見てみましたが、何がグローバル破壊を引き起こしたのかを検出したいので、それは役に立たないと思います。