c++异常

简介: assert ()断言,为真继续,为假终止。 异常处理更为高级,可处理相应异常。   C++的异常处理引入了三个关键字 try(检测异常)、throw(抛出异常)、catch(捕获异常)。 try 负责监视可能出现异常的程序段。若该段出现异常,程序将不再按原有流程走,而是被throw抛出异常,程序控制权交给catch子句,然后从catch块处顺序执行。 try 与 catch 语

assert ()断言,为真继续,为假终止。

异常处理更为高级,可处理相应异常。

 

C++的异常处理引入了三个关键字 try(检测异常)throw(抛出异常)catch(捕获异常)

try 负责监视可能出现异常的程序段。若该段出现异常,程序将不再按原有流程走,而是被throw抛出异常,程序控制权交给catch子句,然后从catch块处顺序执行。

try 与 catch 语句块必须紧连。

异常处理机制可以将正常语句与异常处理语句分开表示,使逻辑结构更清晰。

异常处理流程:

1.执行try{}块中的语句。

2.若没有引起异常,则跳过catch块继续执行。

3.若引起异常,并由throw抛出,则进入catch块。

4.若未找到区配异常的catch块,程序自动调用系统函数terminate()结束自己。

 

调试时会输出异常,而正式运行时却不会执行catch{}里面的语句,暂时不懂。

 

异常中断了程序的正常流程,所以异常涉及到的对象可能为无效状态。那些在异常发生期间正确执行了“清理”工作的代码被称作是异常安全

例一:

例二:

stdexcept头文件定义了常见的异常类,runtime_error是其中一个,what()是它的成员函数,返回创建异常对象时的字符串参数。

目录
打赏
0
0
0
0
14
分享
相关文章
【C++ 异常】C++ 标准库异常类及其应用
【C++ 异常】C++ 标准库异常类及其应用
119 0
|
10月前
|
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(三)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
193 0
|
10月前
|
【C/C++ 关键字 函数说明符 】C++ noexcept 关键字(指定某个函数不抛出异常)
【C/C++ 关键字 函数说明符 】C++ noexcept 关键字(指定某个函数不抛出异常)
115 0
【C++】异常
C++异常处理机制允许在程序运行时出现错误时,通过`try`、`catch`和`throw`关键字将错误信息传递回调用栈,进行异常处理。它支持异常的重新抛出、自定义异常体系以及标准库提供的异常类层次结构,如`std::exception`及其派生类。异常处理提高了代码的健壮性和可维护性,但也带来了性能开销和代码复杂性等问题。合理使用异常机制,可以有效提升程序的稳定性和安全性。
78 3
C++:异常
C++:异常
82 7
C++ 异常原理:以一个小程序为例
作者在调查某个 bug 时涉及到 C++ 异常,借此机会以本文把 C++ 异常机制梳理清楚供大家参考。
|
8月前
|
C++
C++ 异常机制问题之捕获异常的问题如何解决
C++ 异常机制问题之捕获异常的问题如何解决
【C++11】异常知多少
【C++11】异常知多少
69 7
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等