第16章异常处理 16.1异常处理概述 162异常处理的基本思想 16.3C++异常处理的实现 164标准C++库中的异常类 16.5多路捕获 166含有异常的程序设让
第16章 异常处理 16.1 异常处理概述 16.2 异常处理的基本思想 16.3 C++异常处理的实现 16.4 标准C++库中的异常类 16.5 多路捕获 16.6 含有异常的程序设计
在编写程序时,应该考虑确定程序可能出 现的错误,然后加入处理错误的代码。也就是 说,在环境条件出现异常情况下,不会轻易出 现死机和灾难性的后果,而应有正确合理的表 现。这就是异常处理。C++提供了异常处理机 制,它使得程序出现错误时,力争做到允许用 户排除环境错误,继续运行程序
在编写程序时,应该考虑确定程序可能出 现的错误,然后加入处理错误的代码。也就是 说,在环境条件出现异常情况下,不会轻易出 现死机和灾难性的后果,而应有正确合理的表 现。这就是异常处理。C++提供了异常处理机 制,它使得程序出现错误时,力争做到允许用 户排除环境错误,继续运行程序
16.1异常处理概述 程序可能按编程者的意愿终止,也可能因为程序 中发生了错误而终止。例如,程序执行时遇到除数为0 或下标越界,这时将产生系统中断,从而导致正在执 行的程序提前终止 程序的错误有两种,一种是编译错误,即语法错 误。如果使用了错误的语法、函数、结构和类,程序 就无法被生成运行代码。另一种是在运行时发生的错 误,它分为不可预料的逻辑错误和可以预料的运行异 常
16.1 异常处理概述 程序可能按编程者的意愿终止,也可能因为程序 中发生了错误而终止。例如,程序执行时遇到除数为0 或下标越界,这时将产生系统中断,从而导致正在执 行的程序提前终止。 程序的错误有两种,一种是编译错误,即语法错 误。如果使用了错误的语法、函数、结构和类,程序 就无法被生成运行代码。另一种是在运行时发生的错 误,它分为不可预料的逻辑错误和可以预料的运行异 常
为处理可预料的错误,常用的典型方法是让被调 用函数返回某一个特别的值(或将某个按引用调用传 递的参数设置为一个特别的值),而外层的调用程序 则检查这个错误标志,从而确定是否产生了某一类型 的错误。另一种典型方法是当错误发生时跳出当前的 函数体,控制转向某个专门的错误处理程序,从而中 断正常的控制流。这两种方法都是权宜之计,不能形 成强有力的结构化异常处理模式。 异常处理机制是用于管理程序运行期间错误的 种结构化方法。所谓结构化是指程序的控制不会由于 产生异常而随意跳转。异常处理机制将程序中的正常 处理代码与异常处理代码显式区别开来,提高了程序 的可读性
为处理可预料的错误,常用的典型方法是让被调 用函数返回某一个特别的值(或将某个按引用调用传 递的参数设置为一个特别的值),而外层的调用程序 则检查这个错误标志,从而确定是否产生了某一类型 的错误。另一种典型方法是当错误发生时跳出当前的 函数体,控制转向某个专门的错误处理程序,从而中 断正常的控制流。这两种方法都是权宜之计,不能形 成强有力的结构化异常处理模式。 异常处理机制是用于管理程序运行期间错误的一 种结构化方法。所谓结构化是指程序的控制不会由于 产生异常而随意跳转。异常处理机制将程序中的正常 处理代码与异常处理代码显式区别开来,提高了程序 的可读性
162异常处理的基本思想 对于中小型程序,一旦发生异常,一般是将程序 立即中断执行,从而无条件释放系统所有资源。而对 于比较大的程序来说,如果出现异常,应该允许恢复 和继续执行。恢复的过程就是把产生异常所造成的恶 劣影响去掉,中间一般要涉及一系列的函数调用链的 退栈,对象的析构,资源的释放等。继续运行就是异 常处理之后,在紧接着异常处理的代码区域中继续运 行
16.2 异常处理的基本思想 对于中小型程序,一旦发生异常,一般是将程序 立即中断执行,从而无条件释放系统所有资源。而对 于比较大的程序来说,如果出现异常,应该允许恢复 和继续执行。恢复的过程就是把产生异常所造成的恶 劣影响去掉,中间一般要涉及一系列的函数调用链的 退栈,对象的析构,资源的释放等。继续运行就是异 常处理之后,在紧接着异常处理的代码区域中继续运 行