正确性:错误输入报错。
+
健壮性:错误输入也要维持运行。
||
可靠性
内部接口倾向于正确性
外部接口倾向于健壮性
衡量指标:平均失效时间=真正失效的时间+系统修复的时间
三个阶段:
coding:assertion、exception
testing
debug
异常——接口:throwable
error:非程序引起错误(内存不够、找不到类文件、…)——内部错误,捕获后无需处理
在大多数时候, 程序员不需要实 例化Error
异常:
runtime 异常——不捕获,程序写错了
其他 异常(用户输入错误)——应该捕获、处理
异常依次向上传递,若一直不被捕获则控制台捕获,直接终止。
调用有throws关键字声明会出现异常的方法,需要用try/catch处理或用throws再次抛出
程序员必须在方法的spec中明确写清本方法会抛出的所有checked exception, 以便于调用该方法的client加以处理
LSP对异常的规定:父类型没有抛出的异常,子类型不可以抛出。
自己定义异常类,必须从已有异常类继承,可以直接继承Exception
finally:无论程序是否出现异常 都要执行的语句 比如关闭文件。