私は、「他のすべてが失敗した場合にそれをキャッチする」ことが最善の方法であると思っています。
つまり、アプリケーションで可能な限り多くの例外を処理していますが、それでもバグが発生する可能性があるため、未処理の例外をすべてキャッチして、情報を収集してデータベースに保存したり送信したりできるようにする必要があります。 Web サービスに。
AppDomain.CurrentDomain.UnhandledException イベントはすべてをキャプチャしますか? アプリケーションがマルチスレッドであっても?
補足: Windows Vista は、クラッシュ後に任意のアプリケーションが自身を回復できるようにするネイティブ API 関数を公開しています...名前は今は思いつきません...しかし、多くのユーザーがまだ使用しているため、使用したくありません。 WindowsXP.