Приложение Windows Phone подняло исключение при возобновлении
Я разрабатываю приложение для 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 ответа
Фактически Application_UnhandledException
вызывается, вполне вероятно, что вы где-то не обрабатываете исключение.
Отладьте это, посмотрев на конструктор страницы загружаемой страницы, а также на OnNavigatedTo
обработчик событий, если он у вас есть.
На уровне приложения посмотрите, что вы делаете в Application_Activated
,
Поместите свой код в блок Try-Catch. Я также столкнулся с такой проблемой, но затем обработал метод обработки исключений.
try
{
// your code
}
catch (Exception ex)
{
throw (ex);
}