Я разрабатываю приложение в WPF / .Net 3.5, которое будет доступно для скачивания в Интернете. Я в меру своих способностей пишу код без ошибок и использую исключения только в случае необходимости. Однако мой опыт разработки программного обеспечения показал, что пользователям всегда удается сделать что-то странное, что вызывает исключение таким способом, который вы никогда не могли себе представить. Я хотел бы собрать дополнительную информацию, когда мне нужно поймать необработанное исключение. Пока я фиксирую следующее:
- Поля стандартных исключений (сообщение, тип, трассировка стека и т. Д.)
- Версия ОС
- .Net версия
- Версии DLL-файлов приложений, загруженных в домен приложений
- Информация о лицензии на приложение
- Инструментирование последних нескольких команд, выполненных пользователем.
Я очень уверен, что не хочу собирать какую-либо «личную» информацию о пользователе, поскольку я просто не верю в подобные вещи. Следовательно, не беспокоясь с именем пользователя / доменом / IP-адресом (хотя, поскольку информация об исключении доставляется на веб-сервис, я по своей сути получу информацию IP-адреса, но это может быть прокси-машина) .
Мой вопрос
Любой, кто выпустил приложение в общественное достояние (т. Е. На компьютеры, не находящиеся в контролируемой корпоративной среде), - можете ли вы предложить что-нибудь еще, что будет полезно для отслеживания причин ошибок?
В частности, я не хочу собирать информацию, которой не могу управлять / кодировать - т.е. объем памяти, доступный на ПК, или тип подключенных принтеров - Эти вещи обрабатываются платформой .net, и я не должен (читай: не хочу) должен изменить мой код чтобы справиться с вариациями!
Спасибо!