`

【C++ Primer】第十五章 友元、异常和其他 --之二--->异常

 
阅读更多

一,运行阶段错误

1)程序打开一个不可用的文件

2)请求过多的内存

3)遭遇不能容忍的值

二,调用abort() 异常终止一个进程 #include <stdlib.h>

流程: 1)向标准错误流发送消息 abnormal program termination

2)终止程序

3)返回一个随实现而异的值,告诉OS或父进程,处理失败


三,异常机制

1)例子:


说明:throw 类似于执行返回语句,它终止函数的执行。但throw不是将控制权返回给调用程序,而是导致程序沿函数调用序列后退。直到找到try块的函数。

2)exception类

捕获所有异常:catch(...){ }

异常的注意事项:1>使用异常会增加程序代码

2>降低程序的运行速度

3>异常规范不适用于模板,模板引发的异常随特定具体化而异

三,RTTI (runtime type identification) 运行阶段类型识别

1)含义:程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型

2)RTTI提供了以下两个非常有用的操作符:

   1)typeid操作符,返回指针和引用所指的实际类型;typeid(a).name()就能知道变量a是什么类型的
   2)dynamic_cast操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。

3)例子:

输出:(由于采用随机数,每次运行结果不同)




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics