C++异常处理机制

C++异常处理的语法可以描述如下:
try
{
受保护的语句;
throw异常;
其他语句;
}
catch(异常类型)
{
异常处理语句;
}
try程序块(try block)是用一对大括号{}括起来的块作用域的程序块,对有可能出现异常的程序段进行检测,如果检测到异常,就通过throw语句抛出一个异常。try块中的“其他语句”是在没有检测和抛出异常时要执行的语句,执行以后,推出try程序块;一旦抛出了异常(执行了throw语句),这些“其他语句”就不再执行,直接退出try程序块。
catch程序块的作用是捕获异常和处理异常。一个try程序块必须至少有一个catch块与之对应。在try块中抛出的异常由catch块捕获,并根据所捕获的异常的类型来进行异常处理。

catch关键字后面括号中必须指定一个“异常类型”,一般应该是和抛出的异常具有相同类型的变量或者引用。只有catch后面的“异常处理”和抛出的异常的类型一致时,抛出的异常才会被捕获,才会进一步地进行异常处理。如果抛出的异常不能被捕获,系统给出错误信息,程序运行将终止。例如:将本例中catch后面的引用value的类型由int改为float,try块中抛出的异常就不能被捕获。

在try程序块中可以调用其他函数,并在所调用的函数中检测和抛出异常,而不是在try程序块中直接抛出异常,这时,看起来抛出异常表示在try块中进行,实际不然,在try块中所调用的函数,仍然是属于这个try模块的,所以这个模板中的catch部分,仍然可以捕获它所抛出的异常并进行处理。
一个try块对应多个catch块
一个try语句块后面可以有多个catch语句,每个catch block匹配一种类型的异常错误对象的处理,多个catch block就可以针对不同的异常错误类型分别处理。


多个try-catch块


 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值