WPF - Какую информацию собирать при обработке необработанных исключений? - PullRequest
2 голосов
/ 25 марта 2010

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

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

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

Мой вопрос

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

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

Спасибо!

1 Ответ

0 голосов
/ 08 апреля 2011

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

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

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

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

...