从C++函数返回成功或一个或多个错误代码的好方法是什么?
我有一个名为save()的成员函数,它保存到每个成员变量中,至少有十个成员变量保存到,为了调用save(),我想知道调用是否失败,如果是,哪个成员变量(一些是硬失败,一些是软失败)。
发布于 2009-06-01 22:31:25
我可能会先抛出一个异常,但这取决于你的编码范例。请查阅一些书籍或文章,了解为什么c++异常处理可能更好。
如果我真的需要使用retrun-error-code样式,我会定义一个eunm类型来指定位操作的错误。
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...
    }
}这只是一个粗略的例子。最好将其放入一个类中或使用一个名称空间。
https://stackoverflow.com/questions/936928
复制相似问题