0

アプリケーションは、例外をキャッチすることなく、知らないうちに終了します。アプリケーションにtry catch 機能を実装しました。App unhandled exception で例外をキャッチできませんでした。

たとえば、アプリケーションにサブメニュー画面があり、サブメニューのコンテンツ一覧画面をクリックすると表示されます。しかし、サブメニュー画面で作業を続けていると、知らず知らずのうちにアプリケーションが終了してしまうことがあります。よろしくお願いします。

サブ メニュー ページのサンプル コード: 2 つのスタック パネルがあり、それぞれに他のページに移動するための同じコード セットがあります。

private void stk_searchworkorder_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        try
        {
            (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/MMS/WOSearch.xaml?History=false", UriKind.RelativeOrAbsolute));
        }
       catch (System.Reflection.TargetException ex) { }   catch (Exception ex)
        {
            MessageBox.Show("Unknown exception", app.glbExceptionTitle, MessageBoxButton.OK);
        }
    }

    private void stk_searchworkorder_MouseEnter(object sender, MouseEventArgs e)
    {
        try
        {
            SolidColorBrush br = new SolidColorBrush(Color.FromArgb(255, 40, 40, 40));
            stk_searchworkorder.Background = br;
        }
        catch (System.Reflection.TargetException ex) { }
        catch (Exception ex)
        {
            MessageBox.Show("Unknown exception", app.glbExceptionTitle, MessageBoxButton.OK);
        }
    }

    private void stk_searchworkorder_MouseLeave(object sender, MouseEventArgs e)
    {
        try
        {
            SolidColorBrush br = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
            stk_searchworkorder.Background = br;
        }
        catch (System.Reflection.TargetException ex) { }
        catch (Exception ex)
        {
            MessageBox.Show("Unknown exception", app.glbExceptionTitle, MessageBoxButton.OK);
        }
    }
4

3 に答える 3

0

App.xaml.cs ファイルを調べます。Application_UnhandledException メソッドがあります。このメソッドで例外を適切に処理していることを確認してください。e.Handled = true を設定すると、その後アプリケーションがクラッシュすることはありません。

これは、ハンドルされない可能性のあるすべての例外をキャプチャするわけではないことに注意してください。

于 2013-05-30T13:17:43.880 に答える
0

何か不足しているかどうかはわかりませんが、(Application.Current.RootVisual as PhoneApplicationFrame).Navigate の代わりに NavigationService.Navigate を使用しませんか?

于 2013-05-30T14:26:30.310 に答える