Zer*_*ool 3 c++ error-handling
我目前正在开发一个低级网络应用程序.我们最近遇到了关于用户土地和调试土地的错误报告问题.鉴于某些错误可能会从较低级别的函数启动,库...从一个层向另一个更高层报告确切的错误状态(代码,消息,env ...)已经显示有些麻烦.
然而,我们已经考虑切换回使用异常,但最近有一个朋友已经出现了这种方法:使用类Error_Buf,其中包含有关导致错误的原因的足够信息,如错误代码,缓冲区消息,并将其作为参数传递给函数.因此,只要出现问题,就会在error-> buffer和error-> error_code中设置适当的消息和错误代码,然后将其转发回调用函数并发送足够的返回值.
这实际上是我们在c中所做的事情(至少libnet做了类似的事情),但这与效率和稳健性有什么接近或远,代码可维护性也可能是一个问题.
谢谢,
异常的优点是调用者不能忽略它们.OTOH,我看过很多忽略返回值的代码.
此外,在某些代码中,如果检查所有调用是否存在可能的错误,则算法将隐藏在错误处理代码下.除了例外,这不是问题.