Приложение Windows Phone подняло исключение при возобновлении - PullRequest
0 голосов
/ 13 января 2011

Я занимаюсь разработкой приложения для Windows Phone. Я отправил его в Microsoft, и они отправили мне обратно файл с описанием ошибки, возникающей при возобновлении работы приложения (это относится к разделу 5.2 Управление производительностью и ресурсами, пункт 5.2.3).

Чтобы воспроизвести ошибку, я запускаю приложение, запускаю кнопку «Пуск», чтобы перейти на «рабочий стол» и нажимаю кнопку «Назад». После этого визуальная студия выделяет желтой линией System.Diagnostics.Debugger.Break(); в этом коде

// 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();
            }
        } 

С помощью трассировки стека я обнаружил, что последний вызванный метод был CallApplicationUEHandler.

Итак, это известное исключение? Я забыл обработать некоторые исключения?

Вот последние три строки вывода чуть выше вызова 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

Конструкторы:

Для главной страницы:

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();
            }
        } 

Ответы [ 2 ]

1 голос
/ 13 января 2011

Поскольку вызывается Application_UnhandledException, вполне вероятно, что вы где-то не обрабатываете исключение.

Отладьте это, посмотрев конструктор страницы загружаемой страницы, а также обработчик события OnNavigatedTo, если он у вас есть.

На уровне приложения посмотрите, что вы делаете в Application_Activated.

0 голосов
/ 22 октября 2013

Поместите свой код в блок Try-Catch. Я также столкнулся с такой проблемой, но затем обработал метод обработки исключений.

try
 {

   // your code

 }

catch (Exception ex)
 {

   throw (ex);
 }
...