软件构造第十二章总结——正确性与健壮性

健壮性与正确性

  • 健壮性:不正确输入仍有正常的表现
  • 正确性:完全按照SPEC执行,不一致就直接报错。

衡量健壮性

  • MTBF:平均失效间隔时间。
  • 而正确性:MTTF,到失败时的时间。

Throwable

  • Throwable包括Error以及Exception。
  • Exception包括RuntimeException以及NonRuntimeException

RuntimeException

  • 此异常是程序员出错了。自己写的源代码问题。
  • 非运行时异常,是不可控因素导致的,在代码中验证也难以避免。
  • Unchecked异常

CheckedException

  • 不可控,外部因素,只能catch throw

异常与SPEC

  • 异常也需要在SPEC中定义,是post-condition的一部分。
  • 不能抛出error以及unchecked exception
  • 子类只能抛出父类更具体的异常,或者根本不跑出。
  • 抛出异常后,控制流不会再回来了。

定义异常

软件构造第十二章总结——正确性与健壮性

stack trace

  • 遇到异常后,JVM沿着栈,逐层压出栈,依次寻找是否有catch,如果都没有,则终端打印错误,控制不会再回去了,类似set jump

assert

  • 对于pubic的precondition使用异常处理,post以及public的所有均使用assert

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92146 人正在系统学习中

来源:HIT-1190201210-陈则睿

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月6日
下一篇 2021年6月6日

相关推荐