2011-12-11 7 views
1

未処理の例外をキャッチする方法はありますか?私のコードがすべてtry catchにラップされていれば? 例外はすべて同じに発生し、アプリケーションがクラッシュします...多分一般的なアドバイスがありますか?Windows phone 7アプリケーションで未処理の例外をキャッチする方法はありますか?

使用:大きなコードと行われ、多くのものがありますので

 try 
      { 
      ...my code 
      } 
     catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message.ToString(),"Error!",MessageBoxButton.OK); 
      } 

サンプルコードが...、存在せず、どこかにエラーが発生したように見えるが、それはのtry-catchはないですショー、およびアプリケーションだけ...

追加クローズ:

var errorw = MessageBox.Show(e.ExceptionObject.ToString(), "error", MessageBoxButton.OK); e.Handled = true; 

とメッセージを:パラメータが間違っています。

ここで、どこでどのパラメータが与えられたのかを理解するのと同じです。ところで、アプリケーションの前のページに戻るときにBackを押すと、エラーが発生するという記述を忘れてしまいました。

答えて

3

あなたはモードを解除し、デバッグ中にアプリケーションを構築していないことを確認してください。この

 // Code to execute on Unhandled Exceptions 
private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e) 
{ 
    if (e.ExceptionObject is QuitException) 
     return; 

    if (System.Diagnostics.Debugger.IsAttached) 
    { 
     // An unhandled exception has occurred; break into the debugger 
     System.Diagnostics.Debugger.Break(); 
    } 

    //MessageBox.Show(e.ExceptionObject.ToString(), "Unexpected error", MessageBoxButton.OK); 

    var errorWin = new ErrorWindow(e.ExceptionObject, "An unexpected error has occurred. Please click Send to report the error details.") 
         {Title = "Unexpected Error"}; 
    errorWin.Show(); 
    //((PhoneApplicationFrame) RootVisual).Source = new Uri("/Views/ErrorWindow.xaml", UriKind.Relative); 

    e.Handled = true; 
} 

private class QuitException : Exception { } 

public static void Quit() 
{ 
    throw new QuitException(); 
} 
+0

ErrorWindowとは何ですか?変更されたMessageBox? – LarryCrowne

+0

そのようなエラーが報告され、そのエラーが表示されます。 –

+0

ErrorWindow、MessageBox: var errorw = MessageBox.Show(e.ExceptionObject.ToString()、 "error"、MessageBoxButton.OK); e.Handled = true; \t \t メッセージ: パラメータが正しくありません。 – LarryCrowne

1

マニュアルは常にあります。

UnhandledException event description。

+0

ドキュメントにリンクするのではなく、回答に関連コードを投稿してください。 –

1

StackTraceプロパティをExceptionにしましたか?例外がスローされた場所を示します。

catch (Exception ex) 
{ 
    MessageBox.Show(ex.StackTrace,"Error!",MessageBoxButton.OK); 
} 
+0

実際には表示されない問題です。アプリケーションはすぐに終了します。 – LarryCrowne

1

ようにしようとするだろう。それより、VS Debug-Exceptionsメニューに行き、すべての 'Thrown'列が有効になっていることを確認してください。その後、付属のデバッガでアプリケーションを起動してください。 また、コードを段階的に実行することもできます。

0

皆さんはBugSenseライブラリを使用してデータを取得し、それを収集することができました。 PS。私は創設者の一人です

-2

Try-Catchブロックにあなたのコードを入れてください。私もこのような問題に直面していましたが、例外処理方法で処理しました。

try 
{ 

    // your code 

} 

catch (Exception ex) 
{ 

    throw (ex); 
} 
+0

私はあなたのソリューションの外で例外をキャッチしようとしていると思います。 IE例外処理されていないすべての例外。 –

+0

また、質問の本体にはすでにtry/catchがあります –

関連する問題