异常:用还是不用,这是个问题

异常机制

异常处理并不意味着需要写显示的try和catch。异常安全的代码,可以没有任何try和catch

异常安全的概念:异常安全是指当异常发生时,既不会发生资源泄漏,系统也不会处于不一致的状态。

内存分配。如果new出错,按照C++,一般会得到异常bad_alloc,对象的构造也就失败,在catch捕捉到这个异常之前,所有栈上对象会全部被析构,资源全部被自动清理。

 

办法 :适当组织好代码,利用好RAII,可以实现代码短,清晰,统一在外层某地方处理异常

通常会记日志,或在界面。

异常问题

异常当然不是一个完美的特性。

    异常违反可“你不用就不需要付出代价”的原则,只要开启了异常,即使不使用异常你编译出二进制代码通常也会膨胀

   异常比较隐蔽,不容易看出来那些地方会发生异常和发生什么异常

如果一个函数声明了不会抛出异常,结果却抛出了异常,C++运行时会调用std::terminate来终止应用程序

使用异常的理解

会描述到一些不使用异常,也不使用错误码的错误处理方式,异常是渗透在C++中的标准错误处理方式。标准库的错误处理方式就是异常。其中不仅包括运行时错误,甚至包括一些逻辑错误

处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值