这个问题比技术问题更具哲学性,所以我希望你不要介意我是否故意忽略了发生了什么的混乱细节。
我是一个为特定协议实现服务器的团队,关于如何区分客户端的错误(例如,在打开之前请求读取)和编程错误(例如,传递)一直存在争议一个未初始化的文件句柄到文件系统)。该协议具有将错误返回给客户端的机制。不幸的是,协议代码与我们的内部错误代码不匹配。
到目前为止,我们一直在维护两个不同的错误代码,因为我们进出辅助函数,每次返回时检查两者,但这看起来很麻烦且不优雅,我们正在考虑重构整个错误系统。 / p>
我的问题,互联网,你过去是如何处理这个问题的?是否有任何美观,规范的处理并行错误代码的方法,我们还没有偶然发现?
值得注意的是,我们正在使用C语言,因此我们既不能使用异常也不能构建错误类层次结构来解决问题。
谢谢,
- 丹
答案 0 :(得分:1)
也许我不理解你的问题,但我处理几组错误代码的技巧是在“主错误代码”中为它们分配不同的范围。因此,如果您的协议错误在0-999范围内,您的内部错误可能是1000-1999。您可以编写函数或宏来测试错误代码所在的范围,并执行算术以将错误代码从其原始方案(可能基于0)转换为其在主错误代码分配中的范围,然后返回试。
即使您的某个错误代码系统使用完整的32位数而不是较小的范围,您也可以通过使用64位整数来解决主错误代码。