"Программа обнаружила ошибку" против "Необработанное исключение"
Я создал программу, которую я выпустил онлайн. Я пытался справиться со всеми exception
, но иногда программа все еще имеет сбои. Но когда я воспроизводю сбой на моей стороне, он говорит: "В вашем приложении произошло необработанное исключение". Пользователи моей программы видят "Программа столкнулась с проблемой", и над ней появляется небольшая полоска с надписью "В поисках решения".
Я вижу другое окно для пользователей, потому что у меня установлена полная среда разработки, и у них просто есть среда выполнения? И есть ли способ сохранить состояние DEV программы, когда она вылетает, или выводить сообщение, говорящее: "Сбой программы, вы хотите отправить подробности разработчику" или что-то в этом роде?
2 ответа
Я бы предложил добавить обработчики событий в Application.ThreadException
а также AppDomain.CurrentDomain.UnhandledException
реализовать общую обработку ошибок там.
Похоже, вы разрабатываете для Windows. Сбой, который видят ваши пользователи, предположительно отличается, потому что когда вы его запускаете, у вас подключен отладчик.
Что вы можете сделать, это загрузить программу "Обмен метаданными Microsoft Ecosystem" (MEME) с веб-сайта https://sysdev.microsoft.com/, войдя в свою учетную запись MSDN, и вы сможете найти загрузку.
Диалог "Поиск решения" отправляет мини-дампы в sysdev.
- зарегистрируйте свои двоичные файлы с помощью инструмента MEME
- проверьте сайт sysdev для ваших мини-дампов
- Откройте мини-дамп с Visual Studio и выберите свой бинарный файл
- вы находитесь в режиме отладки, сломанной в исключении.
- проверить стек вызовов
- прибыль