文章分类 -  错误检测

C++编译器怎么实现异常处理
摘要:导论相比较其他传统的语言,C++的一个变革的特征是支持异常处理。相对于传统语言的不清楚容易错误的错误处理机制,C++的异常处理是一个非常好的替代。在正常的代码和错误处理代码之间清楚的分割使得程序非常整洁和宜于维护。本文讨论编译器怎么实现异常处理。假设读者熟悉异常处理的语法。本文包含一个异常处理的VC++的库来替代VC++的异常处理,使用这个函数:install_my_handler();在这以后,程序中发生的任何异常(包含抛出异常到stackunwinding,调用catch块和继续执行)都使用我自己的异常处理库。译者注:当异常出现时,正常的执行流被中断,异常处理机制开始在当前范围寻找匹配的处 阅读全文

posted @ 2011-02-23 10:39 cvbnm 阅读(288) 评论(0) 推荐(0)

异常规范
摘要:在异常捕获加入 C++ 几年后,标准化委员会加入了一个叫做异常规范的的补充特性。本文将介绍异常规范并质疑其可用性。 问题 考虑下面的函数原型: void validate(int code); 通常,第三方的库把相似的声明分类放在头文件里面,把实现对用户隐藏起来。用户如何知道这个函数是否抛出一个异常和在什么情况下抛出异常呢?显然,这种声明并没有提供任何线索。 Validate() 可能是一个抛出异常的函数,甚至可能是一个完全不知道 C++ 异常的 C 函数抛出了异常。 异常在 1989 年加入了 C++ 。几年的困扰使得标准化委员会加入了异常规范。 异常规范基础 一个异常规范描述了一个函数允许 阅读全文

posted @ 2011-02-23 10:35 cvbnm 阅读(622) 评论(0) 推荐(0)

VC 异常处理
摘要:在C++发展的后期,有的C++编译系统根据实际工作的需要,增加了一些功能,作为工具来使用,其中主要有模板(包括函数模板和类模板)、异常处理、命名空间和运行时类型,以帮助程序设计人员更方便地进行程序的设计和调试工作。1997年ANSI C++委员会它们纳入了ANSII C++标准,建议所有的C++编译系统都能实现这些功能。这些工具是非有用的,C++的使用者应当尽量使用这些工具,因此本书对此作简要的介绍,以便为日后的进一步学习和使用打下初步基础。 在第3章的11节已介绍了类模板。在本章中主要介绍异常处理和命名空间,应当注意,期的C++是不具备这些功能的,只有近期的C++系统根据ANSIC++的要求 阅读全文

posted @ 2011-02-23 10:34 cvbnm 阅读(7411) 评论(0) 推荐(0)

导航