2010-11-22 12 views
1

アプリケーションがクラッシュしたときに、クラッシュ情報をユーザーから取得したいので、ユーザーからクラッシュ情報を取得する方法がわかりますか?メインアプリケーションがクラッシュしましたか?

ps.Justそのウィンドウのように:「クラッシュ情報をMicrosoftに送信しますか?」ユーザーからクラッシュ情報を取得する[.NET]

答えて

2

実行する必要があるのは、アプリケーションのすべてのキャッチされていない例外をキャッチすることです。

AppDomain.CurrentDomain.UnhandledExceptionイベントハンドラを使用すると、捕捉されていないすべての例外に対してイベントハンドラを追加できます。このイベントで受け取った例外を除き、必要なダイアログを表示することができます。

すべての例外をキャッチする方法については、Why is .NET exception not caught by try/catch block?などの記事を参照してください。

+0

「ああ私の神!」、それは私があなたの最初の文章を読んだときの最初の考えでした。あなたが探しているのは 'AppDomain.CurrentDomain.UnhandledException'です(ハンドラをハンドラに接続してください)。アプリケーション内の**例外を**すべてキャッチできます。また、 'Application.ThreadException'に対してハンドラを配線し、別のスレッドからすべての例外を取得します...あなたのリンクはこれを非常によく説明しています。すべてを' Try {...} catch 'にカプセル化する必要はありません。 – Bobby

+0

あなたはそうです。文言は完璧ではないかもしれません。 try/catchが意味することは、 'AppDomain.CurrentDomain.UnhandledException'によって使用されるメカニズムです。私は私の答えを書き換えます。ありがとう。 –

+0

@Pieter:それはちょっと病気だと思っていましたが、確信が持てませんでした。とにかく+1。 – Bobby

関連する問題