当前位置: 首页 > 文档资料 > C++大学教程 >

13.4 C++ 异常处理基础:try、throw、catch

优质
小牛编辑
129浏览
2023-12-01

C++ 异常处理用于错误检测函数无法处理错误的情况。这种函数抛出异常(throw an exception),但不能保证有相关的异常处理器。如果有,则异常处理器捕获和处理这个异常。如果没有该类异常相关的异常处理器,则程序终止。

程序员在try块中放上出错时产生异常的代码。try块后面是一个或几个catch块。每个catch块指定捕获和处理一种异常,而且每个catch块包含一个异常处理器。如果异常与catch块中的参数类型相符,则执行该catch块的代码。如果找不到相应异常处理器,则调用,terminate函数(默认调用函数abort)。

抛出异常时,程序控制离开try块,从catch块中搜索相应异常处理器(稍后将介绍如何形成相应异常处理器。如果try块中没有抛出异常,则跳过该块的异常处理器,程序在最后一个catch块之后恢复执行。

我们可以对异常指定函数throw,也可以指定函数不抛出任何异常。

函数的try块中抛出异常,或者从try块直接或间接调用的函数抛出异常。执行throw的点称为抛出点(throw point)。抛出点也指抛出表达式本身。抛出异常之后,控制无法返回抛出点。

发生异常时,可以从异常点向异常处理器传递信息。这些信息是抛出对象的类型或抛出对象中的信息。

抛出的对象通常是个字符串(错误消息)或类对象。抛出对象向处理该异常的异常处理器传递信息。

软件工程视点 13.4
异常处理的关键是程序或系统中处理异常的部分可以和检测与产生异常的部分分开。