首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C代码中的错误处理

C代码中的错误处理
EN

Stack Overflow用户
提问于 2008-12-22 18:46:04
回答 8查看 116K关注 0票数 170

当涉及到在C库中以一致的方式处理错误时,您认为什么是“最佳实践”?

我一直在想两种方式:

始终返回错误代码。典型的函数如下所示:

MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize);

始终提供错误指针方法:

int getObjectSize(MYAPIHandle h, MYAPI_ERROR* returnedError);

当使用第一种方法时,可以像这样编写代码,其中错误处理检查直接放在函数调用上:

int size;
if(getObjectSize(h, &size) != MYAPI_SUCCESS) {
  // Error handling
}

这看起来比这里的错误处理代码要好。

MYAPIError error;
int size;
size = getObjectSize(h, &error);
if(error != MYAPI_SUCCESS) {
    // Error handling
}

但是,我认为使用返回值来返回数据会使代码更具可读性,很明显,在第二个示例中向size变量中写入了一些内容。

你有什么想法,为什么我应该更喜欢这些方法中的任何一种,或者混合使用它们或使用其他方法?我不是全局错误状态的粉丝,因为它往往会使多线程使用库的方式更加痛苦。

编辑: C++关于这方面的具体想法也会很有趣,只要它们不涉及异常,因为这不是我目前的选择……

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/385975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档