私は大規模なアプリケーションに取り組んでいます。私はすべての例外を注意深く処理しようとします(そして可能であれば事前にそれらを防ぎます)。ただし、アプリケーションは大規模であるため、いくつかの例外がスローされることがあります。開発環境で作業しているとき(つまり、Eclipseからアプリケーションを起動しているとき)、アプリケーションが発生した場所を確認し、そこに移動して、それに対して何ができるかを確認できます。問題は、開発中、他の人がすでにアプリケーションを(社内で)「一種のテスト作業」をしていることです。彼らは私にたくさんのフィードバックをくれます、それは私が好きです。アプリケーションで例外がスローされた場合、この例外がどこで作成されたかを知る方法はありません。
ダイアログを介してユーザーにキャッチされていない例外を表示するアプリケーションを見てきました。私は確かにこれが顧客バージョンで発生することを望んでいませんが、デバッグバージョンでそれを実行できれば非常に役立つかもしれません。これは可能ですか?
つまり、マルチスレッドJavaアプリケーションのスローされた例外とキャッチされていない例外をすべてキャッチすることは可能ですか?
編集:コードがどのように実行されるかを尋ねられました。すべてのライブラリとクラスファイルを含む実行可能なjarをEclipseで作成します。次に、 Launch4jを使用してこのjarを実行可能ファイルにパックします。次に、この実行可能ファイルを使用してアプリケーションを実行します( Innosetupを使用してリソースファイルと一緒にsetup.exeにパックされますが、これはそれほど重要ではないと思います)。
コード的には、必要なすべてのクラス(GUIを含む)を開始するThreadManagerがありますが、これらすべてのクラスへのハンドルを必ずしも保持しているわけではありません。