在软件开发的过程中错误捕捉显得尤为重要,因为有的错误会导致软件功能失常,而有的却会造成破坏性损失。世上没有不出错的软件。软件的逻辑错误,人为操作的失误,运行条件的改变等等因素都会导致异常的出现。下面的代码是一个例子:
char* pszData=NULL;//假设为全局变量
BOOL ReadData(void)
{
FILE* pFile=fopen("c:data.dat","r");
//假设 c:data.dat文件长度为 1024 BYTE
if(pFile != NULL)
{
if(pszData)
delete pszData;
pszData=new char[1024];
if(1024 == fread(pszData,1024,1,pFile))
return TRUE;
}
//打开文件失败错误,或文件长度不够
return FALSE;
}
void PrintData()
{
for(int i=0;i1024;i++)
{
printf("%x ",pszData[i]);
}
}
粗看这段代码应该是没有问题的,因为该段代码进行了错误处理,在操作没成功时返回了错误。但是在PrintData中就有一个隐患,如果pszData为NULL时怎么办,毫无疑问,此 猜你喜欢