WPF - 处理未处理的异常时要捕获哪些信息?

时间:2010-03-24 21:37:27

标签: wpf exception unhandled

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

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

我非常有意思,我不想捕获有关用户的任何“个人”信息,因为我只是不相信那种事情。因此不会打扰用户名/域/ IP地址(虽然异常信息被传递到Web服务我将固有地获取IP信息,但它可能是代理机器)

我的问题

任何将应用程序发布到公共领域的人(即不在受控企业环境中的计算机上) - 你能否提出其他任何有助于追踪错误原因的内容?

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

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这应该足够了。您可以获得有关环境的信息,用户尝试执行的操作以及最重要的调试工具之一:堆栈跟踪。

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

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

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