2010-03-24 54 views
2

我正在WPF/.Net 3.5中开发一个应用程序,可以在互联网上下载。我 - 尽我所能 - 编写无缺陷代码,并仅在必要时使用异常。然而,我的软件开发经验表明,用户总是设法做一些奇怪的事情,导致异常以一种你无法想象的方式抛出。当我需要捕捉未处理的异常时,我想收集更多信息。到目前为止,我捕捉了以下内容:WPF - 处理未处理的异常时要捕获哪些信息?

  • 标准异常字段(消息,类型,堆栈跟踪等)
  • OS版本
  • .NET版本的应用程序的DLL
  • 版本加载到AppDomain中
  • 应用程序许可证信息
  • 检测由用户执行的最后几条命令。

我很想知道,我不想捕获有关用户的任何“个人”信息,因为我只是不相信这种事情。因此,不用打扰用户名/域名/ IP地址(尽管作为例外信息被传递给web服务,我将固有地获得ip信息,但它可能是代理机)

我的问题

任何人谁也发布了一个应用到公共领域(即到计算机上的不可控的企业环境) - 你可以建议其他任何将在追查错误的原因有用?

特别我不想收集我无法管理/编码的信息 - 即, PC上可用的内存量或连接的打印机类型 - 这些东西是由.net框架处理的,我不应该(阅读:不想)必须改变我的代码以应付变化在那里!

谢谢!

回答

0

我认为这应该够了。您有关于环境的信息,用户想要做什么以及最重要的调试工具之一:堆栈跟踪。

除非你在谈论打印机管理应用程序或其他东西,否则打印机信息将不值得。

总会有这样一个远程机会,您将遇到由硬件,运行服务,安装的应用程序和月相组成的奇怪组合而导致的错误。我认为为了处理这些罕见的错误而疯狂地收集关于用户环境的信息是不值得的。

只要记住有一种方法可以联系您的错误报告,以防用户确实需要修复其特定问题,以便他可以提供更多关于该问题的信息并帮助您重现问题。根据您的目标受众,您必须在诸如错误跟踪器或简单的电子邮件地址之间做出决定。