C++异常机制
2023-07-04 15:31:13 面包芯语

C++异常机制概述

异常对象

标准异常类描述头文件
exception最通用的异常类,只报告异常的发生而不提供任何额外的信息exception
runtime_error只有在运行时才能检测出的错误stdexcept
rang_error运行时错误:产生了超出有意义值域范围的结果stdexcept
overflow_error运行时错误:计算上溢stdexcept
underflow_error运行时错误:计算下溢stdexcept
logic_error程序逻辑错误stdexcept
domain_error逻辑错误:参数对应的结果值不存在stdexcept
invalid_argument逻辑错误:无效参数stdexcept
length_error逻辑错误:试图创建一个超出该类型最大长度的对象stdexcept
out_of_range逻辑错误:使用一个超出有效范围的值stdexcept
bad_alloc内存动态分配错误new
bad_castdynamic_cast类型转换出错type_info

catch 关键字

允许从非常量到常量的类型转换。


(资料图片)

允许派生类到基类的类型转换。

数组被转换成指向数组(元素)类型的指针。

函数被转换成指向函数类型的指针。

栈展开、RAII

程序将输出:

程序运行结果:

若析构函数抛出异常,调用 std::abort() 来终止程序。

在析构函数中 catch 捕获异常并作处理。

noexcept修饰符与noexcept操作符

这是 throw 作为函数异常说明,前者表示 func()这个函数可能会抛出 int 或 double 类型的异常,后者表示 func() 函数不会抛出异常。事实上前者很少被使用,在 C++11 这种做法已经被摒弃,而后者则被 C++11 的 noexcept 异常声明所代替:

关于C++异常机制,欢迎在评论中和我探讨。觉得文章不错,请点赞和在看支持我继续分享好文。谢谢!

你好,我是飞宇,本硕均于某中流985 CS就读,先后于百度搜索以及字节跳动电商等部门担任Linux C/C++后端研发工程师。

同时,我也是知乎博主@韩飞宇,日常分享C/C++、计算机学习经验、工作体会,欢迎点击此处查看我以前的学习笔记&经验&分享的资源。

我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。

欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会。

加个微信,打开另一扇窗

热门推荐

文章排行

  1. 2023-07-04C++异常机制
  2. 2023-07-04高考900分是怎么回事 高考考了900分怎么考的 精选
  3. 2023-07-04热门:普徕仕:加息周期即将结束 看好新兴市场投资机会
  4. 2023-07-04北京码农神盘失灵
  5. 2023-07-047月华北黄淮阶段性高温明显 中国气象局:防范高温的不利影响
  6. 2023-07-04环球头条:A站被曝不再续约UP主,快手终究没能拯救“猴山”
  7. 2023-07-04don't hate是什么意思_hate是什么意思 环球关注
  8. 2023-07-04贾鲁河下穿京广高铁综合治理工程顺利完工-关注
  9. 2023-07-04每日快讯!时隔7年,日本财务省下调10年期国债票面利率
  10. 2023-07-04方正电机高开涨停:拟与小鹏汽车在驱动电机等领域战略合作
  11. 2023-07-04环球动态:妇人因政见不同袭击的士司机,的哥:我以为会被打死
  12. 2023-07-04《堡垒之夜》的变形金刚合作终于让你成为战斗巴士 环球热点
  13. 2023-07-04快资讯丨臭虫药有哪些怎么用:氯氰菊酯是一种非内吸性杀虫剂|观察
  14. 2023-07-04购买汽车前多做“功课” 选二手车防“踏坑”!南宁12315发布消费提示-今日热门
  15. 2023-07-04【天天新视野】蜂蜜与四叶草结局 大结局剧情介绍
  16. 2023-07-04【早知道】商务部、海关总署:对镓、锗相关物项实施出口管制;国家将启动年内第二批中央猪肉储备收储工作|环球短讯
  17. 2023-07-04速看:“藏羚羊产房”卓乃湖的日与夜
  18. 2023-07-04广东汕头推动纺织服装产业做大做强
  19. 2023-07-04今日快看!6月30日基金净值:华夏中证全指房地产ETF最新净值0.7937,涨0.71%
  20. 2023-07-04豪门效应!贝林厄姆加盟皇马后社媒涨粉320万 热闻