异常(exception)是指在运行的时刻程序出现反情况。比如:数组下标越界。打开文件夹失败,动态创建内存失败等。程序员一般有自己的异常处理方式。这导致个各种编码方式,。所以很难整合到一个程序中。
异常处理(exception handing ), 为“响应运行时刻的程序“提供了一个标准语言级的设施。它支持统一的语法和风格,也允许每个程序员进行微调。异常处理 不需要我们在程序中处处显示的测试异常状态。从而可以将测试代码显示的抽取出来,放在指定的 标记的代码块中。因此 异常处理设施大大的 简化了程序的长度和复杂度。
异常处理机制主要构成如下:
1: 程序中异常出现的点。一旦识别出程序的异常,就会抛出异常(throw)。当异常被抛出的时候,程序就会被挂起,知道异常被处理完毕了。c++中,异常的处理有throw表达式来执行。
2:程序中异常被处理的点. 典型的程序的异常抛出和处理位于独立的 函数或者成员函数中。找到异常处理代码一般要展开程序调用栈(progam call stack ).一旦异常被处理完毕,及恢复程序的正常执行。但是不是在出现 异常的地方恢复,而是在处理异常的地方恢复执行过程。在c++中异常的处理用catch表达式来执行。
catch和try字句相关联。一个try块用一个或者多个catch子句将一条或者多条语句组织起来。
系统根据被抛出的异常和catch子句的异常类型的匹配的情况来选择catch子句。
系统把控制传递给catch子句体,其中的语句将顺序执行。完成后后,除非子句体中还抛出异常,否则的话,控制将会被传到程序的当前点上。