异常记录器:最佳实践

时间:2009-01-21 10:06:13

标签: delphi exception-handling

我刚开始在我的(Delphi)应用程序中使用异常记录器(EurekaLog)。现在我的应用程序每天通过电子邮件向我发送大量错误消息。这是我到目前为止所发现的

  • 许多重复错误
  • 来自同一台PC的多封邮件

虽然这是改善我的应用程序的非常有价值的输入,但我对我获得的大量信息感到有些不知所措。

从您的应用程序处理邮件的最佳做法是什么?

5 个答案:

答案 0 :(得分:8)

如果您获得了大量信息,那么您目前无法获得任何信息。

所以我会说你的错误分组,如警告,致命错误等。 然后将您的电子邮件限制为最重要的邮件(致命)。 除了定期检查您的日志(日,周...)。

答案 1 :(得分:6)

我使用madExcept作为核心的异常日志记录做了什么,但我自己的传输机制是让它们全部进入数据库。核心信息全部从每个报告中提取并放入字段中,整个报告也被存储。自动分析堆栈跟踪以删除不感兴趣的函数,只留下我失败的函数列表。

随着这种情况自动发生,我现在可以“忽略”每个单独的消息,但是在网格中看到更大的图片,向我显示哪些功能最容易出问题。然后我可以专注于它们,寻找原因并修复它们。

如果我选择,我的显示应用程序也可以在特定数字之前过滤掉构建中的报告,这样我就可以告诉它在构建75之后不要包含“MyWidget.BadProc”。一旦我修复它。

这有助于我改进我的应用程序,并且无需猜测就能解决人们发现问题最严重的问题。

答案 2 :(得分:1)

这在很大程度上取决于发回的错误。显而易见的是,如果您的应用程序中存在错误,则需要修复并向您的客户发送补丁/更新。

如果它们是您知道可能发生的异常,并且不要求您收到通知,则可以在Eureaka Log选项中添加“异常过滤器”以指定它们应如何处理(或忽略!)。

另一种选择是在邮件主题行中使用EurekaLog变量(您可以在其中添加异常描述等),然后使用您的电子邮件客户端根据此进行过滤。

答案 3 :(得分:1)

我使用madExcept做到了这一点。它对于追踪我们无法重现的问题非常有用。

这让我问你为什么这么多?未被捕获的例外应该是少之又少。特别是如果用户看到错误对话框。我负责几个应用程序,每个应用程序有数百个安装程序,我很少收到电子邮件通知。

如果他们主要来自极少数的个人电脑,我会与其中一些用户合作,找出他们做的不同,或者他们的设置如何产生异常。

如果他们来自各地,那可能是通过测试的错误。

无论哪种方式,使用细节来修复代码,或者至少预测已知的异常并正确捕获它们(没有空的try..except)。

解决热点问题将减少您收到的电子邮件数量,使偶尔的通知更易于管理。

答案 4 :(得分:0)

我认为你应该抛弃所有重复的东西。只留下报告的数量。即如果你得到,比如100个报告,但只有4个独特的问题 - 只留下4个报告,抛出其他96个报告,但是使用他们的计数按严重程度对报告进行排序。例如,第四个问题有6个报告,第三个报告有10个报告,第二个报告有20个,第一个有60个。因此,您应该解决60个报告中的第一个问题,然后才切换到第二个。

我相信EurekaLog在其报告中有BugID。同样的问题有相同的BugID。这将允许您对包含重复项的报表进行排序。 EurekaLog Viewer也可以整理重复项。