"Программа обнаружила ошибку" против "Необработанное исключение"

Я создал программу, которую я выпустил онлайн. Я пытался справиться со всеми exception, но иногда программа все еще имеет сбои. Но когда я воспроизводю сбой на моей стороне, он говорит: "В вашем приложении произошло необработанное исключение". Пользователи моей программы видят "Программа столкнулась с проблемой", и над ней появляется небольшая полоска с надписью "В поисках решения".

Я вижу другое окно для пользователей, потому что у меня установлена ​​полная среда разработки, и у них просто есть среда выполнения? И есть ли способ сохранить состояние DEV программы, когда она вылетает, или выводить сообщение, говорящее: "Сбой программы, вы хотите отправить подробности разработчику" или что-то в этом роде?

2 ответа

Решение

Я бы предложил добавить обработчики событий в Application.ThreadException а также AppDomain.CurrentDomain.UnhandledException реализовать общую обработку ошибок там.

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

Что вы можете сделать, это загрузить программу "Обмен метаданными Microsoft Ecosystem" (MEME) с веб-сайта https://sysdev.microsoft.com/, войдя в свою учетную запись MSDN, и вы сможете найти загрузку.

Диалог "Поиск решения" отправляет мини-дампы в sysdev.

  • зарегистрируйте свои двоичные файлы с помощью инструмента MEME
  • проверьте сайт sysdev для ваших мини-дампов
  • Откройте мини-дамп с Visual Studio и выберите свой бинарный файл
  • вы находитесь в режиме отладки, сломанной в исключении.
  • проверить стек вызовов
  • прибыль
Другие вопросы по тегам