2

私のWPFアプリケーションでは、一部のユーザーに「アプリケーションが処理できない例外を生成しました」というエラーが表示されます。Application.DispatcherUnhandledExceptionイベントハンドラーを実装しましたが、例外はこのイベントによって処理されません。アプリケーションの外部で例外が発生し、アプリケーションが閉じられる可能性はありますか?おそらくメモリがありますか?

4

4 に答える 4

6

DispatcherUnhandledExceptionに加えて、試すことができる1つのことは、AppDomainからの例外をリッスンすることです。

AppDomain.CurrentDomain.UnhandledException += 
        new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

これは、理論的には、ディスパッチャ内で実行されている例外だけでなく、アプリケーションに関連するすべての例外をキャッチする必要があります。

于 2012-04-25T08:31:10.720 に答える
2

これもアプリケーションのスタートアップに追加してみましたか?:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
于 2012-04-25T08:32:06.170 に答える
0

私の経験では、一部のユーザーだけがエラーを受け取る場合(そしてそれらのユーザーが常にエラーを受け取る場合)、プロジェクトファイルは「CopyToLocal」プロパティをtrueに設定せずにdllを参照する可能性があります-したがって、すべてのユーザーがdllを持っていると仮定しますGACにインストールされています-一部のユーザーには当てはまらない場合があります。

于 2012-04-25T08:42:23.837 に答える
0

ハンドラーが呼び出されても例外が未処理のままである場合は、イベントを処理する必要があります。「wpfでUI例外を抑制する方法」をe.Handled=true;参照してください。

于 2012-04-25T13:16:45.270 に答える