健壮性和正确性
健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度
面向健壮性的编程:
- 处理未期望的行为和错误终止
- 即使终止执行,也要准确/无歧义的向用户展示全面的错误信息
- 错误信息有助于进行debug
Robustness principle:对别人宽容点,对自己狠一点
正确性:程序按照spec加以执行的能力,是最重要的质量指标!
ps.正确性倾向于直接报错(error),健壮性倾向于容错(fault-tolerance)
正确性:用不给用户错误的结果
健壮性:尽可能保持软件运行而不是总是退出
对外的接口,倾向于健壮;对内的实现,倾向于正确
可靠性=健壮性+正确性
Throwable
The Error(内部错误):程序员通常无能为力,一旦发生,想办法让程序优雅的结束
The Exception(异常):你自己的程序导致的问题,可以捕获、可以处理;程序执行中的非正常事件,导致程序无法按预想的流程执行
Error/Runtime异常、其他异常
Sort of errors:
- 用户输入错误
- 设备错误
- 物理限制
在大多数时候,程序员不需要实例化Error。
Exception的两个分支:
- RuntimeException 运行时异常:由程序员在代码里处理不当造成(如果在代码中提前进行验证,可以避免)
- 其他异常:由外部原因造成(即使在代码中提前加以验证,也无法完全避免)