最近在编写函数过程中,发现函数的返回值是个很重要的参考量,在较大规模的软件工程里面,多个类的使用是必然的,多种类结构的使用会使得工程变得复杂,要是代码运行过程中产生了错误,定位错误也是个很困难的问题。
首先,如果是在类内部的话,我们可以通过在内部函数加入错误码,然后写一个获取错误码的函数。具体使用如下:
class GetError
{
public:
void FunctionA(int a, int b)
{
/*代码片段一*/
m_iErrorCode = 1;
/*代码片段二*/
m_iErrorCode = 2;
/*代码片段三*/
m_iErrorCode = 3;
/*代码片段四*/
m_iErrorCode = 4;
/*代码片段五*/
m_iErrorCode = 5;
}
void FunctionB(int a, int b)
{
/*代码片段一*/
m_iErrorCode = 6;
/*代码片段二*/
m_iErrorCode = 7;
/*代码片段三*/
m_iErrorCode = 8;
}
int GetLastError()
{
return m_iErrorCode;
}
private:
int m_iErrorCode;
};
通过这样的设计,我们就可以知道哪里出了问题,定位到程序的某一个位置。只不过这样拿到的错误码只是数字,在错误码较多的情况下很容易造成混淆,也无法第一时间定位问题。因此我们可以把错误码做成枚举类型的量。如:
typedef enum ErrorCode
{
CALLFUNCTIONSUCCESS = 0, //函数调用成功
PARMISEMPTY = -1, //传入参数为空
CALLFUNCTIONFAIL= -2, //函数调用失败
OTHERERROR=-3 //其他未知错误
/*······*/
};

在大型软件工程中,函数返回值和错误码对于定位错误至关重要。文章介绍了如何在类内部使用错误码,并通过将错误码设计为枚举类型,提高错误定位的效率和准确性。当面对复杂的类结构时,将错误码枚举置于公共头文件,确保所有类共享,简化错误处理并便于提供给用户详细的错误描述。
最低0.47元/天 解锁文章
2716

被折叠的 条评论
为什么被折叠?



