第九章的 异常处理.pptVIP

  • 9
  • 0
  • 约8.77千字
  • 约 30页
  • 2017-02-03 发布于湖北
  • 举报
* * * 如果已存在的异常在被捕获之前又有一个新的异常产生将造成异常不能被获取,最常见 的这种情况的产生原因是异常对象的构造函数自身会导致新的异常。 如果异常未能被捕获,特殊函数terminate( )将自动被调用。 * * * * 异常处理部分必须直接放在测试块之后。如果一个异常信号被抛出,异常处理器中第一个 参数与异常抛出对象相匹配的函数将捕获该异常信号,然后进入相应的c a t c h语句,执行异常 处理程序。c a t c h语句与s w i t c h语句不同,它不需要在每个c a s e语句后加入b r e a k用以中断后面程 序的执行。 捕获所有异常 前面论述过,如果函数没有异常规格说明,任何类型的异常都有可能被函数抛出。为了解 决这个问题,应创建一个能捕获任意类型的异常的处理器。这可以通过将省略号加入参数列表 (á la C)中来实现这一方案。 catch (. . . ) { cout an exception was thrown endl; } 为了避免漏掉异常抛出,可将能捕获任意异常的处理器放在一系列处理器之后。 如果已存在的异常在被捕获之前又有一个新的异常产生将造成异常不能被获取,最常见 的这种情况的产生原因是异常对象的构造函数自身会导致新的异常。 * * * * * * * * 如果函数实际抛出的异常类型与我们的异常规格说明不一致,将

文档评论(0)

1亿VIP精品文档

相关文档