您将如何改进我们的Unhandled Exception Handler错误消息?

时间:2009-06-05 21:15:12

标签: .net winforms error-handling

我们是三位内部开发人员,用户数约为二十。我们在Winforms应用程序中实现了未处理的异常处理。它在我们的FogBugz(内部重命名为DevTracker)错误跟踪系统中生成带有堆栈跟踪的票证。

目标是鼓励用户输入信息性错误,而不是简单地继续前进。当他们点击第一个按钮时,我们会将工作放在我们的项目网站上并启动一个新案例。他们只需要填写评论框。我在辩论“我们在干什么?”部分应该存在。

你有什么看法?

http://thegollys.smugmug.com/photos/555553239_LxEPK-S.jpg


选择两个

多一点背景...... 用户非常精通使用FogBugz(Dev Tracker),因为他们当前正在请求功能和错误修复。 除了未处理的错误处理之外,我们还在下一个版本的混合中添加了log4net。它将堆栈跟踪推送到用户本地计算机上的日志(如果是网络中断),内部数据库和FogBugz案例。

在阅读安德鲁的回答之后,它将我推向了我已经在想的......简单总是更好。我已经删除了“我们正在做什么”这一部分,并将这些措辞配对。 http://www.thegollys.com/photos/555771972_VUTxK-S.jpg


选择三个

感谢所有反馈。这就是我们正在实施的目标。 http://thegollys.smugmug.com/photos/558265081_5sPG2-O.jpg

4 个答案:

答案 0 :(得分:2)

用户讨厌当他们试图完成某些事情并打断它们时。 (我知道,我就是其中之一。)而在这里,你甚至没有给他们机会选择default answer。我完全理解为什么,但要谨慎行事。尽可能少地中断他们的思路。

(顺便说一句,在此之后,应用程序是否终止,或者您是否恢复并让他们继续他们正在做的事情?)

所以你给了用户两个选择:“告诉我们你在做什么”和“继续使用它”(但是比按钮更多的话,即使在Take Two中也是如此)。你真的希望他们选择“告诉我们你在做什么”,但据我所知,你可以通过打开一个Web浏览器来实现它。 巨大的中断。一旦用户完成,他们将完全忘记他们离开的地方。他们也会讨厌你,也不会给你有用的评论。 (哎呀,当浏览器完成加载时,他们可能会被另一个应用程序分散注意力(或者重新启动你的应用程序),然后将网页“留待以后”,这时他们已经忘记了任何有用的上下文。)

相反,为什么不在对话框中放置一个文本框呢?最初可能会为你做一些工作,但我认为你会得到更好的反馈。

我在想这样的事情:


(来源:excastle.com

  • 免费提供"The Bastard Operator From Hell"-style excuse server。他们有更多。
  • 从“告诉我们你刚刚做的事情”文本框中的光标开始,这样 让他们给你反馈:只需输入内容然后点击Enter(或点击只有三个单词的按钮)。
  • 制作“已经完成崩溃”的超链接,所以它在那里,但不再强调。左对齐它,所以人们不会立即将它与它真正的取消按钮相关联。
  • 如果有人填写了框并提交了错误报告,那么“嘿,谢谢!”对话框可以提到“顺便说一句,如果你再次得到这个,你可以点击'我在'超链接之前报告过这个',并显示一个带有红色圆圈和箭头的屏幕截图,以便他们注意。
  • 您想要的任何其他文字都可以放在具有不同背景颜色的侧边栏中。横幅广告失明将使人们甚至不会看到它,除非他们处于一种好奇(和耐心)的情绪中。

答案 1 :(得分:1)

我采取的方法是让用户尽可能简单。他们已经担心你向他们展示一个可怕的错误信息,所以你不想通过询问它们来引入额外的压力。要求提供简短的评论并尽可能多地提取。

值得注意的是,使用FogBugz,您可以在诊断出病毒后存储一条消息。如果再次出现相同的错误,您可以从服务器返回该消息以呈现给用户。在过去的几年里,我已经离开了FogBugz,所以我对其工作原理的记忆有点模糊,但我确实记得能够存储纠正措施信息,并在有意义时将其呈现给用户。

编辑:现在我已经看过我的评论图片了。简化并带走任何可怕的语言。我将删除对“开发团队”的引用;改用“我们”。删除对“普通英语”的引用。你想问一些简单的问题:“你在做什么?”。

答案 2 :(得分:0)

我不知道你是否已经在幕后做这个,但我喜欢简单地允许用户输入他们的电子邮件地址并点击“发送错误报告”的方法。

然后当我收到错误详细信息时,我会调查问题,修复它,然后立即回复它们,让他们知道问题已解决。

这有几个方面。这使得用户可以非常轻松地提交错误以及在解决时通知他们的方式。并且它在我的屁股下点火以尽快解决问题,所以我没有从几十个用户那里得到相同的错误报告。

当然,当我实现这种方法时,它一直用于网站,而不是桌面应用程序。而且他们是我能够很快改变的网站。

答案 3 :(得分:0)

我们有类似的东西(不太奇怪 - 给你的荣誉),但我们也有能力查看可能在用户位置进行故障排除的开发人员或当前默认情况下对用户隐藏的异常正在呼叫服务台的用户。

此外,您可以告诉他们,如果他们不提交报告,您将把图片中右边的人送到他们的办公桌帮助他们。这应该吓到他们这样做。 :)