契约式设计(异常/断言)

Java语言在程序运行时检验程序状态的机制:
异常(Exception),一般用于处理不受我们控制的不可预见的错误;
断言(Assertion),验证我们在代码中做出的一些假设。
1.异常与错误
异常与错误都是程序运行中出现的破坏性事件。Java采取的是抛出异常或抛出错误。也可以创建自己的异常,最简单的一种是RuntimeException,他会中断程序的执行并打印出一条出错信息:
throw new RuntimeException(“Error message here.”);
一种叫做快速出错的常规编程实践提倡,一旦出错就立刻抛出异常,使定位出错位置更容易。
2.断言
断言是一条需要在程序的某处确认为true的布尔表达式。如果表达式为false,程序将会终止并报告一条出错信息。我们使用断言来确定程序的正确性并记录我们的意图。例如,假设你计算得到一个值并可以将它作为索引访问一个数组。如果该值为负数,稍后就将产生一条ArrayIndexOutBoundsException 异常。如果代码中有一句assert index >= 0;,就能找到出错的位置,还可以选择性地加上一条详细的消息来辅助定位bug,例如:
assert index >= 0 : “Negative index in method X”;
默认设置没有启用断言,可以在命令行下使用-enableassertions标志(简写为-ea)启用断言。断言的作用是调试:程序在正常操作中不应该以来断言,因为它们可能被禁用。系统编程课程会学习使用断言来保证代码永远不会被系统错误终止或是进入死循环。

猜你喜欢

转载自blog.csdn.net/weixin_44168355/article/details/89929238