健壮性与正确性
1.健壮性:
处理未期望的行为/错误
终止执行也要返回错误信息
信息要有助于debug
健壮性+正确性=可靠性
我们的接口要做到:
对外:注重健壮性
对内:注重正确性
健壮性:错误与异常处理
Error:我们无能为力,由于输入/设备/物理因素导致的
Expection:可处理,用try−catch向上传
uncheck:error+RuntimeExpection不能恢复
check:其他的异常,由编译器(静态)检查得出,能恢复
2.正确性:断言与防御式编程
断言
assert (期望的结果): “提示信息”;
AssertError→直接结束
判断的内容:RI(表示不变量)、内部不变量、控制流不变量、方法的pre、方法的post
不用assert外部的不受控制的
开发阶段使用,运行时注释掉→影响性能和健壮性
防御式编程
对于非法输入:garbage in, garbage out