在軟件開發的過程中錯誤捕捉顯得尤為重要,因為有的錯誤會導致軟件功能失常,而有的卻會造成破壞性損失。世上沒有不出錯的軟件。軟件的邏輯錯誤,人為操作的失誤,運行條件的改變等等因素都會導致異常的出現。下面的代碼是一個例子:
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;i<1024;i++)
{
printf("%x ",pszData[i]);
}
}
粗看這段代碼應該是沒有問題的,因為該段代碼進行了錯誤處理,在操作沒成功時返回了錯誤。但是在PrintData中就有一個隱患,如果pszData為NULL時怎麼辦,毫無疑問,此