Когда приложение аварийно завершает работу, а когда оно аварийно завершает работу с отчетом об отправке в Windows Mobile

Я заметил, что в Windows Mobile существует как минимум два вида сбоев.

  1. Тихий сбой
    Сбой приложения, но нет диалогового окна «отправить отчет», запрашиваемого операционной системой.
  2. Сбой с "отправить отчет"
    Сбой приложения и диалоговое окно "отправить отчет", запрашиваемое операционной системой.

Кроме того, каждый из приведенных выше сбоев иногда приводит к неожиданному завершению работы приложения, а иногда и нет (насколько я помню).

Когда каждый из них происходит и, возможно, каковы некоторые общие сценарии/причины, по которым они происходят?

Изменить:
когда я разрабатываю приложения WM, иногда мои приложения дают сбой. Пока я не использую никаких исключений (не бросая и не ловя).


person Afriza N. Arief    schedule 14.05.2010    source источник


Ответы (1)


на «Сбой при отправке отчета» ответить проще всего. Когда приложение завершает работу из-за необработанного исключения, вы получаете диалоговое окно «Извините», в котором предлагается отправить файл .kdmp в Microsoft. Этот файл .kdmp (также называемый мини-дампом) содержит информацию о состоянии программы на момент возникновения необработанного исключения.

Тихий сбой, вероятно, представляет собой приложение, которое входит в состояние ошибки, которое оно не знает, что делать, и решает выйти. Например, разработчик, возможно, решил перехватить конкретное исключение, но не знал, как от него избавиться, поэтому он просто говорит программе завершить работу. Я не думаю, что будет какое-то одно объяснение этому типу ошибки.

-ПолХ

person PaulH    schedule 14.05.2010
comment
Привет PaulH, спасибо за ваш ответ. До сих пор мой код не выдавал и не перехватывал никаких исключений, но я столкнулся с этими двумя исключениями и хочу их отладить. - person Afriza N. Arief; 14.05.2010
comment
Тот факт, что вы специально не генерируете исключения, не означает, что ОС не генерирует их. Например, разыменование указателя NULL вызовет исключение. Запись за конец буфера может вызвать исключение. Если мы говорим о вашем коде, то я предлагаю вам запустить его в отладчике. Перед выходом из приложения отладчик сообщит вам, где была ошибка и что ее вызвало. - person PaulH; 14.05.2010
comment
да, я немного понял после того, как набрал свой комментарий, что используемая мной ОС/API может генерировать исключения. К сожалению, в силу обстоятельств некоторые проекты, над которыми я сейчас работаю, не могут быть отлажены с помощью отладчика. Кстати, в своем первом комментарии я хотел написать, что сталкиваюсь с этими двумя сбоями, а не сталкиваюсь с этими двумя исключениями. - person Afriza N. Arief; 15.05.2010