我将在一个巨大的项目中使用库,其中异常用于错误处理。该库使用返回码进行错误处理,这意味着所有函数都将返回一个常量,定义函数是否成功或发生任何错误。
如果库函数失败,我的函数经常不得不中止。有什么比下面代码片段中给出的示例实现更好的方法来处理这些错误?
我的问题的一个主要问题是在每次评估返回代码后释放先前分配的内存。这是容易出错且麻烦的。我希望找到一些指导方针来防止每次调用库函数时释放...
void examplefunc()
{
T* pT = new T();
U* pU = new U();
Q myQ;
int iRes = CONST_SUCCESS;
if ((iRes = myQ.func1())!= CONST_SUCCESS)
{
delete pU;
delete pT;
throw translateException(iRes); // providing exc
}
if ((iRes = mQ.func2())!= CONST_SUCCESS)
{
delete pU;
delete pT;
throw translateException(iRes); // providing exc
}
delete pU;
delete pT;
return;
}
感谢您的所有建议。有什么我可以遵循的指导方针吗?
最好的问候山姆