0

这个问题比技术更哲学,所以我希望你不介意我是否故意遗漏正在发生的事情的混乱细节。

我在一个为特定协议实现服务器的团队中,关于如何区分来自客户端的错误(例如,在打开之前请求读取)和编程错误(例如,传递未初始化的文件)存在一些争论处理到文件系统)。该协议具有将错误返回给客户端的机制。不幸的是,协议代码与我们的内部错误代码不匹配。

到目前为止,当我们进出辅助函数时,我们一直在维护两个不同的错误代码,每次返回时都检查,但这看起来很麻烦且不优雅,我们正在考虑重构整个错误系统。

我问你的问题,互联网,你过去是如何处理这个问题的?有没有什么漂亮、规范的方法来处理我们还没有发现的并行错误代码?

值得注意的是,我们正在使用纯 C 语言,因此我们既不能使用异常,也不能构建错误类的层次结构来解决问题。

谢谢,

- 担

4

1 回答 1

1

也许我不理解您的问题,但我处理几组不同错误代码的技术是在“主错误代码”中为它们分配不同的范围。因此,如果您的协议错误在 0-999 范围内,那么您的内部错误可能是 1000-1999。您可以编写函数或宏来测试错误代码在哪个范围内,并进行算术以将错误代码从其原始方案(可能是基于 0)转换为其在主错误代码分配中的范围,然后返回再次。

即使您的一个错误代码系统使用完整的 32 位数字而不是更小的范围,您也可以通过使用 64 位整数作为主错误代码来解决这个问题。

于 2013-08-14T23:52:47.320 回答