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 逻辑错误:使用一个超出有效范围的值
本文深入探讨了C++的异常处理机制,包括throw表达式、try块、catch子句及其作用,以及标准库中定义的异常类,如runtime_error、range_error等。
503

被折叠的 条评论
为什么被折叠?



