网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C++中的异常浅析

   我们都知道,无论是在C语言中还是C++的编程调试中,我们都会遇到各种各样的错误,那么在遇到这些错误的时候我们要怎么处理它们呢?

成都网站设计、网站制作介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

这里有一些传统的处理错误的方法:

 ①终止错误

 ②返回错误码

 ③返回合法值,让程序处于某种错误状态,

 ④调用一个预先设置好的处理错误的函数--->(回调函数)

    为了更好地处理这一类问题,在C++中提出了异常,当函数出现一个自己无法处理的错误时,就会抛出异常,让函数的调用者直接或间接的来处理这个问题。

来举一个例子:

例1:

C++中的异常浅析

对于函数div来说,程序没有一种机制来处理当num2为零时的情况,所以我们可以通过抛出异常来解决这个问题

C++中的异常浅析注意:当throw出异常的时候,后面括号里的参数一定要和catch后面括号里的数据类型匹配

例2:下面再来举一个例子C++中的异常浅析

C++中的异常浅析

   从上面的代码可以看出,由于一旦抛出异常,就要进行捕获,所以在抛出异常的同时也不可避免的影响了代码的执行流,也就是代码不一定就顺序执行了,因此在抛出异常之前,如果有malloc或new开辟的空间时,一定要在执行流改变之前将其释放,否则就会出现内存泄漏的问题。

通过以上两个例子,我想大家一定能够对异常有一定的了解了吧,下面我来对异常做几点总结:

 ①异常是通过抛出对象引发的,该对象的类型取决了激活哪一类的异常

 ②被选中的异常处理代码是调用链中抛出对象类型相同的最近一个开始的

 ③抛出异常会释放局部存储对象,被抛出的对象也还给了系统,异常对象在catch处理后也还给了系统

Tips:

异常捕获的匹配规则

1.允许非const到const的转换,也就是const可以接受匹配非const

2.允许派生类型到基类的转换(父类的指针或引用可以指向或引用一个子类,将其作为接受的类型)

3.将数组转换为一个指向数组类型的指针,将函数转换为函数指针类型


注意事项

一般不要在析构函数或构造函数中抛出异常


新闻名称:C++中的异常浅析
网站路径:http://bjjierui.cn/article/jccdss.html

其他资讯