首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从C++函数返回多个错误码

如何从C++函数返回多个错误码
EN

Stack Overflow用户
提问于 2009-06-01 21:38:11
回答 9查看 3.6K关注 0票数 3

从C++函数返回成功或一个或多个错误代码的好方法是什么?

我有一个名为save()的成员函数,它保存到每个成员变量中,至少有十个成员变量保存到,为了调用save(),我想知道调用是否失败,如果是,哪个成员变量(一些是硬失败,一些是软失败)。

EN

Stack Overflow用户

发布于 2009-06-01 22:31:25

我可能会先抛出一个异常,但这取决于你的编码范例。请查阅一些书籍或文章,了解为什么c++异常处理可能更好。

如果我真的需要使用retrun-error-code样式,我会定义一个eunm类型来指定位操作的错误。

代码语言:javascript
运行
复制
enum error
{
   NO_ERROR = 0,

   MEMBER_0_NOT_SAVED = 1,
   MEMBER_1_NOT_SAVED = 1 << 1,
   MEMBER_2_NOT_SAVED = 1 << 2,
   // etc..

};

int save()
{
    int ret = NO_ERROR;

    // fail to save member_0
    ret  |= MEMBER_0_NOT_SAVED;

    // fail to save member_1
    ret  |= MEMBER_1_NOT_SAVED;

    // ....

    return ret; 
}

int main(void)
{
    int ret = save();
    if( ret == NO_ERROR)
    {
       // good.
    }
    else
    {
        if(ret & MEMBER_0_NOT_SAVED)
        {
              // do something
        }

        if(ret & MEMBER_1_NOT_SAVED)
        {
              // do something
        }

        // check the other errors...
    }
}

这只是一个粗略的例子。最好将其放入一个类中或使用一个名称空间。

票数 2
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/936928

复制
相关文章

相似问题

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