语句序列;执行过程中无throw语句,跳过catch语句块;执行过程中抛掷异常,该异常顺序与catch语句匹配。匹配成功进行异常处理。处理完毕转到try块的所有catch语句之后。Р若未匹配,将异常抛给调用函数,如果不能处理继续向上级调用者传递。到主函数仍不能处理,则运行系统自动调用结束函数terminate(),其默认功能是调用abort()终止程序。Рcatch语句括号中的异常声明只能容纳一个变量,可以是引用。异常声明中的变量名可以省略,有时catch语句只关心异常对象的类型,而不考虑具体的异常对象。Р12.5.3 创建自己的异常类用户定义的异常类可以非常简单,不包括任何成员。异常类的成员一般包括构造函数和成员函数what()安排catch语句的顺序时,对基类的处理放在派生类之后;catch(…)语句可以捕获任何类型的异常,通常放在最后。Р12.5.4 指定函数抛掷的异常类型返回类型函数名(参数表)throw(类型列表)类型列表表示函数可能向外抛掷的异常类型,同时对函数可向外抛出的异常做了限定。若为空则表示不抛掷任何类型的异常。若函数中没有指定抛掷异常类型(无throw()),则表明可能抛掷任何类型的异常。Р12.5.5 异常处理的嵌套抛掷异常时撤销对象Рtry块中调用的函数发生异常时,先返回函数的调用处,然后与catch做匹配。Р函数中存在创建的对象时,返回函数调用处时会超出对象作用域,所以在撤出时做对象撤销处理。Р12.5.6 再次抛掷异常异常处理程序捕获异常后,不完全处理后,可以向上一级再次抛出。语句格式:Рthrow;构造函数中的异常处理Р构造函数不允许存在返回类型,无法通过返回值报告运行状态。只能通过强行终止或通过异常来处理通过异常处理构造函数时,若构造函数未执行完毕,流程就离开构造函数,系统未能成功创建完整的对象,系统会保证不调用析构函数撤销该对象Р