2011-01-13 7 views
0

Windows Phone Appを開発しています。 私はそれをMicrosoftに提出し、私は、アプリケーションを再開するときに発生するエラーを記述したファイルを送り返しました(5.2パフォーマンスとリソース管理、5.2.3を参照してください)。Windows Phone Appを再開すると例外が発生しました

エラーを再現するには、私はアプリを実行する、私は "デスクトップ"に移動し、 "戻る"ボタンをクリックするには、スタートボタンを開始します。その後 、スタックトレースで

// Code to execute on Unhandled Exceptions 
     private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
     { 
      if (System.Diagnostics.Debugger.IsAttached) 
      { 
       // An unhandled exception has occurred; break into the debugger 
       System.Diagnostics.Debugger.Break(); 
      } 
     } 

このコードでは、黄色のSystem.Diagnostics.Debugger.Break();ラインで、Visual Studioのハイライトは、私が最後に呼び出されたメソッドがCallApplicationUEHandlerであることがわかりました。

これは既知の例外ですか?私はいくつかの例外を処理することを忘れましたか?

first chance exception 'System.ArgumentNullException' in Microsoft.Phone.Controls.dll 
first chance exception 'System.ArgumentException' in System.Windows.dll 
first chance exception 'System.ArgumentException' in System.Windows.dll 

コンストラクタ:ここ

は、出力の最後の3行は、ちょうどCallApplicationUEHandlerの呼び出しより上にあるメインページのために

:Appの

public MainPage() 
     { 
      journal.Debug(string.Format("Entrée méthode {0}", new StackTrace().GetFrame(1).GetMethod().Name)); 
      InitializeComponent(); 

      Loaded += new RoutedEventHandler(PhoneApplicationPage_Loaded); 
     } 



private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
    { 
     mainVM = new MainViewModel(); 
     DataContext = mainVM; 
    } 

public App() 
     { 
      // Global handler for uncaught exceptions. 
      // Note that exceptions thrown by ApplicationBarItem.Click will not get caught here. 
      UnhandledException += Application_UnhandledException; 

      // Standard Silverlight initialization 
      InitializeComponent(); 

      // Phone- {2} -specific initialization 
      InitializePhoneApplication(); 
     } 

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
     { 
      if (System.Diagnostics.Debugger.IsAttached) 
      { 
       // An unhandled exception has occurred; break into the debugger 
       System.Diagnostics.Debugger.Break(); 
      } 
     } 
+0

'CallApplicationUEHandler'は、処理されていない例外ハンドラにイベントチェーンを設定する理由の1つです。スタックトレースの* rest *とは何ですか?スタックの下にあるものは、私たちにあなたを助けるためのより多くの情報を与えます。より詳細な 'InnerException'はありますか? –

+0

@John Gardner:私は以下のものはありません。しかし、最後の3つのデバッグ行には、最初のチャンス例外が含まれています。私はそれらを示すために投稿を編集しました。 – Zakaria

+0

最初にナビゲートする前にアプリが完全に読み込まれたことを確認できますか? –

答えて

1

実際にはApplication_UnhandledExceptionと呼ばれていますが、どこか例外を処理していない可能性があります。

ロード中のページのページコンストラクタを確認し、OnNavigatedToイベントハンドラがある場合はこれをデバッグします。

アプリレベルでは、Application_Activatedで行っていることを見てください。

+0

私はApplication_Activatedメソッドで何もしていません。 – Zakaria

+0

@ZakariaとwhnstコンストラクタまたはOnNavigatedToイベントについては? –

0

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

try 
{ 

    // your code 

} 

catch (Exception ex) 
{ 

    throw (ex); 
} 
関連する問題