c++ 中 try catch 的一些

习惯了在 JS 中写 try catch 语句,所以在c++代码中瞎写。。杯具。我对c++的了解太少了。

 

1.在C++中,很多错误是try{}catch{}捕获不到的,比如空指针访问,野指针访问等,程序都直接崩溃,不会让你捕获的。所以,很遗憾,我惯用try catch,并没有达到预期。

 

2. 绝大多数 windows api 在执行时也并不抛出异常,直接挂掉。还是要对每一个问题做其相应的处理,才不至于挂掉。

 

3. 但可考虑用 GetLastError 获取错误信息。

 

4. 另,考虑到性能问题:

 

在c++程序中,try {} catch{} 是有代价的。

每一个try {} catch{} 都会降低执行效率。增加文件大小。
故此,不可滥用try {} catch{} ,只有那些不能明确捕捉的错误才应用try {} catch{} ,比如IO错误。
能通过返回值或者其他方式检查的错误,绝对不要用try {} catch{} 。

但是在C#,VB.NET等语言中,try {} catch{} 虽然同样不可滥用,
但 不会像C++一样增加文件大小。这与C++语言对于try {} catch{} 的实现有关。

 

附解析:

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值