异常的概念21.1吴,另一种是在运行时发生的错误,它分为不可预料的逻辑错误和可以预料的运行异常。逻辑错误时由于不当的设计造成的例如,某个排序算法不合适,导致在边界条件下,不能正常完成排序任务一般只有当用户做了某些出乎意料的事才会出现逻辑错误
• 另一种是在运行时发生的错误,它分为不可 预料的逻辑错误和可以预料的运行异常。 • 逻辑错误时由于不当的设计造成的。 • 例如,某个排序算法不合适,导致在边界条 件下,不能正常完成排序任务。 • 一般只有当用户做了某些出乎意料的事才会 出现逻辑错误
异常的概念21.1即使许多大型的优秀软件也不能避免逻辑错误。一发现了逻辑错误,专门写一段处理错误的代码,就可避免错误的发生例如,数组下标溢出检香虽然运行异常可以预料,但是无法避免运行异常是由系统运行环境造成的
• 即使许多大型的优秀软件也不能避免逻辑错 误。 • 一旦发现了逻辑错误,专门写一段处理错误 的代码,就可避免错误的发生。 • 例如,数组下标溢出检查。 • 虽然运行异常可以预料,但是无法避免。 • 运行异常是由系统运行环境造成的
异常的概念21.1吴,例如,内存空间不足,程序运行中提出内存分配申请得不到满足,就会发生异常。或者,硬盘上的文件被册删除了,导致程序运行中文件打不开而发生异常。或者程序中,发生除0的代码,导致系统除0中断;或者打印机没有打开,调制解调器掉线等
• 例如,内存空间不足,程序运行中提出内存 分配申请得不到满足,就会发生异常。 • 或者,硬盘上的文件被删除了,导致程序运 行中文件打不开而发生异常。 • 或者程序中,发生除0的代码,导致系统除0 中断; • 或者打印机没有打开,调制解调器掉线等
异常的概念21.1吴这些错误,会使程序变得脆弱,但是,这些运行错误时能够预料的。通常加入一些预防代码便可防止这些异常异常是一种程序定义的错误,对程序的逻辑错误进行设防,对运行异常加以控制C++中,异常是对能预料到的运行错误进行处理的一套实现机制
• 这些错误,会使程序变得脆弱。 • 但是,这些运行错误时能够预料的。 • 通常加入一些预防代码便可防止这些异常。 • 异常是一种程序定义的错误,对程序的逻辑 错误进行设防,对运行异常加以控制。 • C++中,异常是对能预料到的运行错误进行 处理的一套实现机制
21.1异常的概念例21一1:对文件打不开时的保护#include<fstream>using namespace std;/ / .void f(char * str)ifstream source(str);//打开str串中的文件if (source.fail()如果打不开文件cerr <<"Error opening the file: " << str << endl ;exit(1) ;/退出程序17
例21—1:对文件打不开时的保护 #include<fstream> using namespace std ; //. void f ( char * str) { ifstream source (str) ; //打开str串中的文件 if ( source . fail( ) ) //如果打不开文件 { cerr << "Error opening the file: " << str << endl ; exit(1) ; //退出程序 } }