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

需积分: 10 5 下载量 159 浏览量 更新于2024-07-28 收藏 530KB PDF 举报
C与C++中的异常处理是软件开发中的一种关键机制,用于应对程序运行过程中可能出现的非正常情况。该PDF文档由Robert Schmidt撰写,无情译,深入探讨了这两个语言中异常处理的相关概念和技术。 首先,作者在第一章中明确了异常的分类,强调了术语"异常"的多义性,特别是在C++标准异常(C++ Standard Exceptions)和Microsoft的结构化异常处理(Structured Exception Handling,SEH)之间。作者认识到这种术语的模糊性,并承诺在系列文章中明确区分和使用。 在第二章,作者介绍了标准C库对异常处理的支持,包括概述了如何在传统C语言中通过错误代码和返回值来间接处理异常。同时,这一章也提到了Microsoft对其处理方法的扩展,例如专用的宏和结构化异常处理机制,这在当时的Windows平台上尤其重要。 第三章至第十四章着重于C++异常处理的核心内容。从基本的异常处理语法和语义开始,通过实例剖析深入讲解异常的捕获、传递和处理流程。章节中涉及了`new`和`delete`操作时的异常管理,Microsoft对`<new>`实现版本中的异常处理策略,以及placement new和delete的特殊用法,包括处理构造函数抛出的异常。 接着,讨论了如何在私有子对象中处理异常,异常规格声明的重要性,以及`unexpected()`函数的局限性和异常安全性。模板安全也是章节中不可或缺的部分,分别介绍了模板安全的一般概念以及在实际应用中的注意事项。 最后两章提供了编程指南和最佳实践,包括C++异常与Visual C++ SEH的混合使用策略,帮助开发者理解和有效地利用异常处理机制,以提升程序的健壮性和可靠性。 这份PDF文档是一份详尽的教程,不仅适合C++程序员,也对了解C语言异常处理有一定帮助,为读者揭示了异常处理在C和C++编程中的核心原理和实际应用技巧。通过学习,开发者可以更好地应对程序中的意外情况,提升软件的质量和稳定性。
2012-10-17 上传
C_与C++中的异常处理.pdf1. 异常和标准C 对它的支持...............................................................................................2 2. Microsoft 对异常处理方法的扩展..............................................................................12 3. 标准C++异常处理的基本语法和语义..........................................................................27 4. 实例剖析EH....................................................................................................................33 5. C++的new 和delete 操作时的异常处理.....................................................................40 6. Microsoft 对于的实现版本中的异常处理........................................................47 7. 部分构造及placement delete....................................................................................53 8. 自动删除,类属new 和delete、placement new 和placement delete ...............59 9. placement new 和placement delete,及处理构造函数抛出的异常....................68 10. 从私有子对象中产生的异常.........................................................................................74 11. 异常规格申明.................................................................................................................83 12. unexpected()的实现上固有的限制.............................................................................89 13. 异常安全.........................................................................................................................94 14. 模板安全.......................................................................................................................100 15. 模板安全(续)...........................................................................................................107 16. 指导方针.......................................................................................................................113 17. C++异常和Visual C++ SEH 的混合使用...................................................................120