对异常的一些体会、认识

异常,是什么?这个问题困扰我很久了。最近,用过几次异常,对异常也有了点认识、体会。这些都是我个人体会,不知道对不对,希望能探讨下,指点下,谢过。
        书上经常说的一点是,C++相对于C而言,多了异常处理机制。那么,异常究竟是什么?我觉得,异常就是在处理的时候发生了错误,然后通过异常告知上层调用函数。而相对于C而言,只有错误处理:当碰上错误的时候,会设置一个错误码,而每一个错误码对应特定的意思。比如说errno.h中有个全局变量errno;再比如说,许多C代码中,会自定义许多错误码,然后在特定的情况下设置特定的错误码。

        也就是说,异常处理,说白了就是错误处理。只不过,C++/Java把它封装成一个类抛了出来,而C的话则是记录成一个错误码。相对而言,异常更明了,更方便;而错误码需要先定义,然后还有进行映射,然后才能知道是什么错误。另外,异常处理可能更加全面一点,如果碰上未知的错误,那么可以用"..."来捕获;而C的话,未知错误就无可奈何了。

//--------------------------------------------------------------------------------------------------------------------------------------

 这里又有了一些新 的认识,追加在后面。

用过几次错误码(异常没怎么用过),发现这些东西最难控制的就是:用哪一层的错误码?一个函数调用会有多层,比如说5层(这个还是很正常的),第5层的时候发生了错误,返回一个错误码;那么低4层的时候获取到这个错误之后,是用第5层返回的错误码?还是处理第5层的错误码之后,自己定义一个错误码返回?就是说:什么时候直接返回被调用函数的错误码,什么时候是处理被调用函数的错误码?这一点是很难区分、定义的。

而异常,我感觉和错误码类似:catch之后是处理和还是直接将这个异常抛出?这个也是个难点。

关于这个难点,感觉似乎跟架构设计有关:设计架构的层次,那个层次用哪些错误码或者异常。(不知道是不是这样子的)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值