1 异常处理基础概念 #
mindmap
id1[异常处理基础概念]
id1-1[异常的定义与作用]
id1-2[程序异常的概念]
id1-3[异常处理的重要性]
id1-4[异常与错误的区别]
id1-5[异常处理机制的优势]
id1-6[C++异常处理机制概述]
id1-7[try-catch块结构]
id1-8[throw语句的使用]
id1-9[异常传播机制]
id1-10[栈展开过程]
异常的定义与作用
程序异常的概念
异常处理的重要性
异常与错误的区别
异常处理机制的优势
C++异常处理机制概述
try-catch块结构
throw语句的使用
异常传播机制
栈展开过程
2 异常处理语法详解 #
try块
try块的定义语法
try块的嵌套使用
try块的作用域规则
资源管理的最佳实践
throw语句
throw语句的基本语法
抛出内置类型异常
抛出用户自定义类型异常
重新抛出异常
catch块
catch块的匹配规则
异常类型匹配机制
catch-all处理程序
多个catch块的顺序
mindmap
id2[异常处理语法详解]
id2-1[try块]
id2-2[try块的定义语法]
id2-3[try块的嵌套使用]
id2-4[try块的作用域规则]
id2-5[资源管理的最佳实践]
id2-6[throw语句]
id2-7[throw语句的基本语法]
id2-8[抛出内置类型异常]
id2-9[抛出用户自定义类型异常]
id2-10[重新抛出异常]
id2-11[catch块]
id2-12[catch块的匹配规则]
id2-13[异常类型匹配机制]
id2-14[catch-all处理程序]
id2-15[多个catch块的顺序]
3 标准异常类 #
mindmap
id3[标准异常类]
id3-1[异常类层次结构]
id3-2[std::exception基类]
id3-3[标准异常类的继承关系]
id3-4[自定义异常类的设计原则]
id3-5[常用标准异常类]
id3-6[std::runtime_error]
id3-7[std::logic_error]
id3-8[std::bad_alloc]
id3-9[std::out_of_range]
id3-10[std::invalid_argument]
异常类层次结构
std::exception基类
标准异常类的继承关系
自定义异常类的设计原则
常用标准异常类
std::runtime_error
std::logic_error
std::bad_alloc
std::out_of_range
std::invalid_argument
4 异常安全编程 #
异常安全等级
基本保证
强保证
不抛出保证
资源获取即初始化原则
资源管理与异常
智能指针与异常安全
文件句柄的异常安全管理
锁的异常安全处理
内存泄漏的预防
mindmap
id4[异常安全编程]
id4-1[异常安全等级]
id4-2[基本保证]
id4-3[强保证]
id4-4[不抛出保证]
id4-5[资源获取即初始化原则]
id4-6[资源管理与异常]
id4-7[智能指针与异常安全]
id4-8[文件句柄的异常安全管理]
id4-9[锁的异常安全处理]
id4-10[内存泄漏的预防]
5 高级异常处理技术 #
mindmap
id5[高级异常处理技术]
id5-1[异常规格说明]
id5-2[throw 异常规格]
id5-3[noexcept关键字]
id5-4[动态异常规格的弃用]
id5-5[条件noexcept]
id5-6[异常与构造函数]
id5-7[构造函数中的异常处理]
id5-8[析构函数中的异常处理]
id5-9[异常与对象生命周期]
id5-10[异常安全的对象构造]
异常规格说明
throw 异常规格
noexcept关键字
动态异常规格的弃用
条件noexcept
异常与构造函数
构造函数中的异常处理
析构函数中的异常处理
异常与对象生命周期
异常安全的对象构造
6 异常处理最佳实践 #
异常使用准则
何时使用异常
何时避免使用异常
异常与错误码的比较
性能考虑因素
异常处理设计模式
异常转换模式
异常屏蔽模式
资源管理包装器
异常安全的事务处理
mindmap
id6[异常处理最佳实践]
id6-1[异常使用准则]
id6-2[何时使用异常]
id6-3[何时避免使用异常]
id6-4[异常与错误码的比较]
id6-5[性能考虑因素]
id6-6[异常处理设计模式]
id6-7[异常转换模式]
id6-8[异常屏蔽模式]
id6-9[资源管理包装器]
id6-10[异常安全的事务处理]
7 跨语言异常处理 #
mindmap
id7[跨语言异常处理]
id7-1[C++与其他语言的互操作]
id7-2[C++与C的异常交互]
id7-3[C++异常与系统信号]
id7-4[跨模块异常处理]
id7-5[动态链接库中的异常]
id7-6[平台特定的异常处理]
id7-7[Windows结构化异常处理]
id7-8[Linux信号处理]
id7-9[不同编译器的异常实现差异]
C++与其他语言的互操作
C++与C的异常交互
C++异常与系统信号
跨模块异常处理
动态链接库中的异常
平台特定的异常处理
Windows结构化异常处理
Linux信号处理
不同编译器的异常实现差异
8 调试与测试 #
异常调试技术
调试器中的异常断点
异常调用栈分析
未处理异常的调试
异常日志记录
异常测试策略
单元测试中的异常测试
异常路径的覆盖率测试
压力测试与异常
异常处理的边界测试
mindmap
id8[调试与测试]
id8-1[异常调试技术]
id8-2[调试器中的异常断点]
id8-3[异常调用栈分析]
id8-4[未处理异常的调试]
id8-5[异常日志记录]
id8-6[异常测试策略]
id8-7[单元测试中的异常测试]
id8-8[异常路径的覆盖率测试]
id8-9[压力测试与异常]
id8-10[异常处理的边界测试]
9 现代C++中的异常处理 #
mindmap
id9[现代C++中的异常处理]
id9-1[C++11/14/17/20新特性]
id9-2[移动语义与异常]
id9-3[constexpr与异常]
id9-4[协程中的异常处理]
id9-5[概念与异常规范]
id9-6[异常处理的未来发展方向]
id9-7[静态异常分析工具]
id9-8[异常处理的编译时检查]
id9-9[异常处理的性能优化]
id9-10[异常处理的标准演进]