文档介绍:第8章异常处理
1
《面向对象技术与Visual C++》--第8章
本章主要内容
异常处理概述
异常处理的语法
应用实例
2
《面向对象技术与Visual C++》--第8章
异常处理概述
在程序能正确支持所设计的正常情况之后,再添加语句来处理异常情况,这种思想就是异常处理。
在C++中专门提供了这种机制,程序员在编写程序的时候首先需要假装不会产生任何异常写好用于处理正常情况的语句,之后,利用C++的异常处理机制,添加用于处理异常情况的语句。
3
《面向对象技术与Visual C++》--第8章
异常处理实现
C++语言提供对处理异常情况的内部支持。try, throw和catch语句就是C++语言中用于实现异常处理的机制。
有了C++异常处理,程序可以向更高的执行上下文传递意想不到的事件,从而使程序能更好地从这些异常事件中恢复过来。
4
《面向对象技术与Visual C++》--第8章
异常处理的语法
try-throw-catch是抛出和捕获异常的基本机制。
Throw语句抛出异常(一个值),catch捕获异常。抛出一个异常后,try块会终止,转而执行catch块中的语句。
catch块结束之后,会继续执行catch块之后的语句(前提是catch块中没有终止程序或者执行另外一些特殊的操作)。
如果try块中没有抛出异常,那么在try块结束之后,程序将从catch块之后的语句继续执行。换言之,如果没有抛出异常,catch块会被忽略。
5
《面向对象技术与Visual C++》--第8章
try块
如果在函数内直接用throw抛出一个异常(或在函数调用时抛出一个异常),将在异常抛出时退出函数。如果不想在异常抛出时退出函数,可以在函数体内创建一个特殊块用于解决程序中潜在的错误,在这个块中可以测试各种错误发生的可能性,通常称为测试块,它由关键字try引导。
其定义格式如下:
try
{
<语句>
}
6
《面向对象技术与Visual C++》--第8章
抛出异常
通常将抛出的值直接称为一个异常,所以执行throw语句就称为抛出异常,可以抛出任意类型的一个值。
其定义的格式如下:
throw <抛出值的表达式>
执行throw语句时,外围的try块就会停止执行。如果try块之后跟有一个合适的catch块,那么控制权就会转交给那个catch块。一般说来,throw语句几乎肯定要嵌入一个分支语句(比如if语句)中。
7
《面向对象技术与Visual C++》--