C++标准学习--关于异常处理exception

本文讨论了异常处理在人类编程与机器自动编程中的不同角色。在人类编程中,异常处理被视为基本素养,而在机器编程时,它用于输入校验和程序纠偏。文章列举了各种异常类型并指出在机器自主编程中,尽管可能影响性能,但异常处理是预防系统崩溃的关键。
摘要由CSDN通过智能技术生成

私以为异常处理在人编程的时候无用,在机器自动编程的时候有用。人编程时候,需要对入参做精确判断才能使程序继续,在计算过程中,需要对子函数精确划分,对各个步骤的运算做参与值以及输出值的精确限定或判断。这是基本素养的问题,而不能依赖于异常。即便产生了异常,catch到了,又能做啥处理呢?去限制上游的输入?还是重新配置输入端的参数?这似乎都是不合理的,因为异常,就是你思虑范围之外的东西,你不能基于不可控的东西去产生逻辑,这往往带来新的不可控。那么异常产生后,让程序终止?也不行,程序终止了,还有啥用呢?预期结束了。

但是在机器自动编程的时候,机器无法像人一样去基于相关材料准确判断入参,以及中间过程的结果的合法性。那么,机器产生的代码采用异常去限制输入和中间运算过程是个思路。异常产生后,反馈到上游代码,上游代码做一系列的调整,直到最上游,这样能纠偏。因为是机器编程,程序的复杂度以及可读性往往不需要顾虑,但是效率比较关键。异常处理可能会导致性能的下降,但需要权衡。

异常还可以用来统计程序执行的健康情况或者触发警报。这发生于对于异常不导致程序终止的时候。这也是一个应用场景。

从哲学的角度讲,这相当于对于人犯错的处理,基于错误的严重性。道德层面还是法律层面,基于对于错误本身的本质的认识。任何东西都是有时间和空间局限。错误的认定也是。好的程序框架应该有时间延续性,做到尽量中性,不偏不倚。

在机器自动编程或者机器自动调用的时候,exception是有用的,因为,万一机器在调用某个程序发生调用错误或者其他错误的时候,需要预防机器崩溃。根据帖子 https://blog.csdn.net/linux_Allen/article/details/80154069

我们可知,expception有以下类型:

Exception,接口类
ArithmeticException类, 计算异常
NullPointerException类,空指针异常
IndexOutOfBoundsException类,越界异常
NoEnoughtMemoryException,内存不足异常
InvalidParameterException,参数错误异常
在机器自主编程或调用的时候未必够用,但不得不用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值