WPF - какая информация запечатлеть при обращении с нечестными исключениями?

StackOverflow https://stackoverflow.com/questions/2511602

  •  22-09-2019
  •  | 
  •  

Вопрос

Я разрабатываю приложение в WPF / .NET 3.5, которое будет доступно для загрузки в Интернете. Я - в меру своих способностей - написание бесплатного кода и использую исключения, только где это необходимо. Однако мой опыт разработки программного обеспечения показал, что пользователям всегда удается сделать что -то странное, что вызывает исключение, которое вы никогда не могли себе представить. Я хотел бы собрать дополнительную информацию, когда мне придется поймать нездоровое исключение. Пока что я захватываю следующее:

  • Стандартные поля исключений (сообщение, тип, Stacktrace и т. Д.)
  • ОС версия
  • .NET версия
  • Версии приложений DLL, загруженные в приложение
  • Информация о лицензии приложения
  • Инструментация последних нескольких команд, выполненных пользователем.

Я очень сознательно, что не хочу получать какую -либо «личную» информацию об пользователе, поскольку я просто не верю в такие вещи. Следовательно, не беспокоит имени пользователя/домен/IP -адрес (Хотя информация о исключении доставляется в веб -сервис, я по своей природе получу информацию о IP, но это может быть прокси -машина).

Мой вопрос

Любой, кто выпустил заявку в общественном достоянии (т. Е. на компьютеры, не в контролируемой корпоративной среде) - можете ли вы предложить что -нибудь еще, что было бы полезно для отслеживания причин ошибок?

В частности, я не хочу собирать информацию, которой я не могу управлять/код, - т.е. объем памяти, доступной на ПК, или тип прикрепленных принтеров - эти вещи обрабатываются .NET Framework, и я не должен действительно на самом деле (Читайте: не хочу) Придется изменить мой код, чтобы справиться с вариациями!

Спасибо!

Это было полезно?

Решение

Я думаю, что этого должно быть достаточно. У вас есть информация об окружающей среде, то, что пользователь пытался сделать, и один из самых важных инструментов отладки: The Stack Trace.

Если вы не говорите о приложении по управлению принтерами или о чем -то в этом роде, тогда информация о принтере не стоит того.

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

Просто не забывайте иметь способ, с которым можно связаться для отчетов об ошибках, если пользователь действительно нуждается в решении своей конкретной проблемы, чтобы он мог предоставить больше информации об этом и помочь вам воспроизвести ее. В зависимости от вашей целевой аудитории вы должны выбрать между чем-то вроде трекера ошибок или простого адреса электронной почты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top