C# net5 WPF Desctop Программа не показывает сведения исключения

Такой вопрос. Есть программа на net5. При возникновении ошибки программа просто закрывается. Ошибку можно прочитать только в событиях. Программа на net framework не закрывается а показывает окно где можно посмотреть сведения. Программа запущенна самостоятельно а не из VS

Так и должно работать? Есть ли где опция включить чтобы в net5 показывало диалоговое окно с сведениями.

Я понимаю что нужно писать программы правильно и обрабатывать исключения. Но всякое бывает.

Просто бывает так. Пользователь далеко. Он звонит говорит вылетела программа. Не всем можно рассказать посмотри события. Проще сказать нажми сведения и пришли скриншот экрана.

Перещелкал все опции в свойствах проекта. Желаемого не добился.

Спасибо.


Ответы (1 шт):

Автор решения: EvgeniyZ

Тут дело не в фреймворке, а по большей части в том, какого типа проект у вас, ибо каждый по-своему реагируют на ошибки.

  • WinForms - он выдаст окно с ошибкой (о чем вы и говорите), без разницы, будь у вас .net 5 или .net framework.
  • Консоль - выдаст сообщение об ошибке в саму консоль и после закроется (если вы не ждете от пользователя действий).
  • WPF - просто закроет проект, без вывода чего-либо (логи можно прочитать в журнале Windows).
  • Web - эти проекты обычно выводят страницу, на которой подробная информация об ошибке.

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

А по поводу

Оборачивать прям все в try catch страхуясь от любой ошибки как то.. не знаю.

Зачем? Если ошибка не обработана, то ее можно отловить при помощи специальных событий, у всех типов проектов они разные, но думаю вы без труда найдете их по запросу [типПроекта] catch unhandled exceptions в любом поисковике.

→ Ссылка