许多程序设计语言,包括C++,都支持异常。异常是处理错误的一种机制。处理异常的代码被叫做捕获(catch)或者处理(handle)异常。
捕获异常
为了捕获异常,C++提供了try-catch语句块。我们在try块内部放置可能产生异常的语句,try块后边必有一个或多个catch块。其中每个catch块会分别指出我们想处理的异常类型。try块也可以有许多与其相关的catch块,因为即使单一的一条语句也可能引起多于一种类型的错误。另外,try块可能有许多语句,它们中的任何一个语句都i可能产生异常。
当try 块中的语句产生异常时,try块中余下的部分将被忽略,控制权传递给catch块中对应的语句,然后,执行catch块中的语句,一旦catch块执行完,就从最后一个catch块之后的地方继续执行。如果对于某种异常,没有合适的catch块,通常会出现程序异常终止。
抛出异常
当我们发现程序中有错误时,可以通过throw来抛出异常。当throw语句执行时,函数余下的代码不执行,异常会被传送回调用函数的地方。