C 编程:错误处理与高级主题探索
1. 错误处理
在编写程序时,错误处理是确保程序健壮性的关键部分。以 WriteFile()
函数为例,如果文件写入成功,新文件将替换之前的 DVD 数据文件;若失败,则捕获错误代码用于报告,然后直接删除临时文件(忽略删除过程中可能出现的错误,因为此时已无法处理)。这样, WriteFile()
函数变得更加健壮,即使出现问题,原始的 DVD 信息文件仍会保留。
在设计错误处理时,不必对程序遇到的每个错误都进行处理,要学会“选择战斗”。例如在 ReadFile()
函数中,当文件读取完成后执行 fclose( fp );
,若此时关闭文件出现错误,程序也无能为力,因为 ReadFile()
已经完成了其主要任务。所以,在进行错误检查和处理时,要考虑处理的原因以及处理结果的用途,如果作用不大,可能就无需处理。
下面是一些相关的练习题:
1. 分析以下代码在错误处理方面的缺陷:
bool ReadNumberFromFile( FILE *fp, int *value )
{
if ( fscanf( fp, "%d", value ) == EOF )
return false; // no more numbers
else
return true; // value successfully read
}
-
<