C与C++异常处理详解:标准与微软扩展深入解析

4星 · 超过85%的资源 需积分: 9 6 下载量 154 浏览量 更新于2024-07-25 收藏 463KB PDF 举报
C与C++中的异常处理是一系列深入探讨这两个编程语言如何管理和应对程序运行时遇到的非预期情况的技术。本资源由Robert Schmidt撰写,无情译,主要分为多个章节: 1. **异常和标准C的支持** - 开始讨论了异常的定义和背景,指出在C语言中,“异常”这个词可能存在一定的模糊性,与C++标准异常和Microsoft的结构化异常处理有所区别。这部分概述了通用意义上的异常性质,并介绍标准C库处理异常的基本方法。 2. **Microsoft的扩展** - 探讨了Microsoft对标准C库异常处理机制的扩展,包括专用宏和结构化异常处理,这对于C++开发者尤其重要,尽管这部分内容对C程序员可能不直接适用。 3. **标准C++异常处理** - 进入C++的核心部分,详细讲解了异常处理的基本语法和语义,包括异常的抛出、捕获和处理流程。 4. **实例剖析EH** - 提供实际案例分析,帮助读者理解异常处理在实际编程中的应用。 5. **new和delete操作中的异常** - 讨论了内存管理的关键操作,特别是当构造函数或析构函数内部发生异常时如何正确处理。 6. **<new>的异常处理** - 分析Microsoft对内存分配函数<new>的实现,强调了异常处理在其中的角色。 7. **构造与placement delete** - 涉及对象构造和销毁时的异常处理,特别关注placement new和placement delete。 8. **自动删除和类属操作** - 介绍了不同类型的内存管理操作,以及它们在异常情况下的行为。 9. **placement new和placement delete及构造函数异常** - 重点关注这两种特殊构造方式,以及如何处理构造过程中可能引发的异常。 10. **私有子对象异常** - 讨论了继承和成员函数中异常的传播和处理策略。 11. **异常规格声明** - 关注异常处理的规则和声明规范。 12. **unexpected()的限制** - 分析了内置函数unexpected()在实际应用中的局限性。 13. **异常安全** - 讨论了编写异常安全代码的重要性,即代码即使在异常情况下也能保持正确状态。 14. **模板安全** - 考虑到异常处理在模板编程中的潜在问题,探讨了模板相关的安全策略。 15. **模板安全(续)** - 继续深入讨论模板安全问题及其解决方案。 16. **指导方针** - 提供了一些建议和最佳实践,帮助开发者在C++中有效地使用异常处理。 17. **C++异常与Visual C++ SEH结合** - 最后,介绍了如何在C++中融合C++标准异常和Visual C++的结构化异常处理技术。 这份资源涵盖了C和C++异常处理的全面内容,从基础概念到实践技巧,为开发人员提供了理解和应用异常处理的强大工具。