C++ try块和异常处理

本文深入探讨了C++的异常处理机制,包括throw表达式、try块、catch子句及其作用,以及标准库中定义的异常类,如runtime_error、range_error等。

C++的异常处理中包括:

1)throw表达式:throw引发了异常条件。

2)try块:错误处理部分使用它来处理异常。

3)由标准库定义的一组异常类,用来在throw和相应的catch之间传递有关的错误信息。

try 块:

try

{ program-statements }catch(exception-specifier)

{  handler-statements }catch(exception-specifier)

{ handler-statements }

一旦catch子句执行结束,程序流立即继续执行紧随着最后一个catch子句的语句。

如果不存在处理该异常的catch子句,程序的运行就要跳转到名为terminate的标准库函数,该函数在exception头文件中定义。

标准库异常类定义在四个头文件中:

(1)exception头文件定义了最常见的异常类,它的类名是exception

(2)stdexcept头文件定义了几种常见的异常类。

(3)new头文件定义了bad_alloc异常类型,提供因无法分配内存而由new抛出的异常。

(4)type_info头文件定义了bad_cast异常类型。

在<stdexcept>头文件中定义的标准异常类:

exception  

runtime_error    运行时错误:仅在运行时才能检测到的问题

range_error     运行时错误:生成的结果超出了有意义的值域范围

overflow_error   运行时错误:计算上溢

underflow_error   运行时错误:计算下溢

logic_error

domain_error   逻辑错误:参数的结果值不存在

invalid_argument  逻辑错误:不合适的参数

length_error

out_of_range    逻辑错误:使用一个超出有效范围的值







评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值