标准化错误分类&处理

时间:2008-09-25 05:32:43

标签: handle standardized

我需要标准化我如何优雅地分类和处理错误/异常。

我目前正在使用一个过程,通过该过程我将错误报告给传递错误号,严重性代码,位置信息和额外信息字符串的函数。如果错误是致命的并且应用程序应该死亡,则此函数返回布尔值true,否则返回false。作为其过程的一部分,除了对用户的视觉反馈之外,该功能还记录了高于某个严重级别的文件错误。

错误编号索引一个解释错误类型的字符串数组,例如:'文件访问','用户输入','创建线程','网络访问'等。严重性代码是二进制OR为0 ,1,2或4,0 =提供信息,1 = user_retry,2 = cannot_complete,4 = cannot_continue。位置信息是模块& function和Extra-info是参数和局部变量值。

我希望将其变成一种标准的错误处理方式,我可以放入库中并在我的所有应用中重复使用。我主要在Linux上使用C / C ++,但也希望将结果库与其他语言/平台一起使用。

  • 一个想法是扩展错误类型 数组以指示某些默认值 给定严重性级别的行为, 但是,这应该成为 采取的行动,没有选择 用户?

  • 或者:这样的延伸应该是 用户的子选项数组 需要选择?这个问题 这是选项的意思 必要性是一般化的 可能与编程相关的选项 非常完全困惑 终端用户。

  • 或者:应该使用的每个应用程序 error-lib例程传递它自己的 错误或默认的数组 行为 - 但这会打败 图书馆的目的......

  • 或者:严重程度是否应该是 在每个应用程序中处理?

或者:你有什么建议?你如何处理错误?我怎样才能改善这个?

1 个答案:

答案 0 :(得分:1)

如何处理错误实际上取决于应用程序.Web应用程序具有与A桌面应用程序不同的错误捕获机制,并且这两种机制与异步消息传递系统有很大不同。

据说,错误处理的一个常见做法是在可以处理的最低级别处理它。这通常意味着应用层或GUI。

我喜欢严重程度。也许您可以使用具有不同错误输出提供程序和严重性级别提供程序的可插入错误集合库。

输出提供程序可以包含logginProvider和IgnoreErrorsProvider之类的内容。 严重性提供程序可能是每个项目实现的内容,因为严重性级别通常由发生它的项目类型决定。 (例如,银行应用程序的网络连接问题比联系人管理系统更严重。)