Как отловить необработанное исключение в приложении Windows Phone 7? - PullRequest
1 голос
/ 11 декабря 2011

как отловить необработанное исключение? если весь мой код обернут в try catch? но исключение происходит все равно, и приложение вылетает ... Может быть, есть какой-то общий совет?

использование:

        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; 

И сообщение: Неверный параметр.

Так же, как мы теперь понимаем, где и какой параметр дал неверно? Кстати забыл написать, что ошибка возникает при нажатии Назад, когда вы возвращаетесь на предыдущую страницу приложения.

Ответы [ 6 ]

3 голосов
/ 11 декабря 2011

вы бы попробовали вот так

      // 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();
}
1 голос
/ 12 декабря 2011

Убедитесь, что вы строите приложение в режиме отладки, а не в режиме выпуска. Затем перейдите в меню VS Debug-Exceptions и отметьте все столбцы «Брошенные» для включения. После этого запустите приложение с подключенным отладчиком. Кроме того, вы можете выполнить свой код шаг за шагом.

1 голос
/ 11 декабря 2011

Вы пробовали StackTrace свойство Exception. Показывает, где было сгенерировано исключение.

catch (Exception ex)
{
    MessageBox.Show(ex.StackTrace,"Error!",MessageBoxButton.OK);
}
1 голос
/ 11 декабря 2011

Всегда есть инструкция.

Событие UnhandledException описание.

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

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

try
 {

   // your code

 }

catch (Exception ex)
 {

   throw (ex);
 }
0 голосов
/ 12 декабря 2011

Эй, ребята, вы можете использовать библиотеку BugSense , чтобы перехватить данные и затем собрать их! PS. Я один из основателей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...