我需要标准化我如何“优雅地”分类和处理错误/异常。
我目前使用一个过程,通过该过程将错误报告给传递错误号、严重性代码、位置信息和额外信息字符串的函数。如果错误是致命的并且应用程序应该死掉,则此函数返回布尔值 true,否则返回 false。作为其过程的一部分,除了向用户提供视觉反馈外,该功能还记录到某些严重级别以上的错误。
错误编号索引解释错误类型的字符串数组,例如:“文件访问”、“用户输入”、“线程创建”、“网络访问”等。严重性代码是 0,1 的二进制或, 2 或 4,0=提供信息,1=user_retry,2=cannot_complete,4=cannot_continue。Location-info 是模块和函数,Extra-info 是参数和局部变量值。
我想把它变成一种标准的错误处理方式,我可以把它放在一个库中并在我的所有应用程序中重复使用。我主要在 Linux 上使用 C/C++,但也希望将生成的库与其他语言/平台一起使用。
一个想法是扩展错误类型数组以指示给定严重级别的某些默认行为,但这是否应该成为所采取的操作并且不给用户选项?
或者:这样的扩展是否应该是用户需要从中选择的选项的子数组?这样做的问题是,这些选项必须是通用的与编程相关的选项,这可能会完全让最终用户感到困惑。
或者:每个使用 error-lib 例程的应用程序是否应该传递自己的错误或默认行为数组 - 但这会破坏库的目的......
或者:是否应该在每个应用程序中处理严重性级别?
或者:你有什么建议?你如何处理错误?我该如何改进呢?