5

私はこのコードでWinFormsのプロジェクトを持っています:

AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;

private void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
{            }

e.ExceptionObject完全な StackTrace が含まれています。

Win Store プロジェクト:

this.UnhandledException += (s, e) =>{                                               
{                                              
    MarkedUp.AnalyticClient.LogLastChanceException(e);
};

e.Exception.StackTrace が null です。

両方の例外は、次のコードによって生成されました。

int a=0;
....

try
{
    int i = 1 / a;
}
catch (Exception exp)
{
    throw;
}

何か案は?

4

2 に答える 2

1

MSDN のリファレンスは、これが制限であることを示唆しています: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.unhandledexception

注目すべき制限は、UnhandledException イベント引数には、アプリ コードから伝達された元の例外ほど詳細が含まれていないことです。アプリで特定の例外の特定の処理が必要な場合は、可能な限り、例外が伝播するときに例外をキャッチすることをお勧めします。UnhandledException イベント引数は、Exception プロパティを通じて例外オブジェクトを公開します。ただし、この例外オブジェクトの型、メッセージ、およびスタック トレースは、発生した元の例外のものと一致するとは限りません。イベント引数は Message プロパティを公開します。ほとんどの場合、これには最初に発生した例外のメッセージが含まれます。

于 2014-08-21T18:59:26.767 に答える