概述
7.3Assertions and Defensive Programming断言与防御式编程
1.回忆:设计ADT
2.Assertions 声称
--What to Assert and What not to? 断言什么,不断言什么
--Guidelines for Using Assertions 断言的帮助
3.Defensive Programming 防御式拷贝
– Techniques for defensive programming
4.SpotBugs
1 Recall: Designing an ADT
First Defense: Make Bugs Impossible 最好的防御就是不要引入bug
Second Defense: Localize Bugs 快速定位bug,检查前置条件是防御式编程的一种典型形式
2 Assertions
(1) What and Why Assertions?
断言:在开发阶段的代码中嵌入,检验某些“假设”是否成立。若成立,表明程序运行正常,否则表明存在错误。
出现 AssertionError ,意味着内部某些假设被违反了
断言的方法:
assert condition;
assert condition : message;
(2) What to Assert and What not to?
Internal Invariants 内部不变量
Rep Invariants 表示不变量 (checkRep)
Control-Flow Invariants 控制流不变量 switch-case
Pre-conditions of methods 方法的前置条件
Post-conditions of methods 方法的后置条件
使用异常可以避免程序直接结束
缺省关闭断言,要记得打开 (-ea),断言非常影响性能
(3) Guidelines for Using Assertions
断言-->Correctness
错误 / 异常处理-->Robustness1
3 Defensive Programming
§ Protecting programs from invalid inputs
§ Assertions
§ Exceptions
§ Specific error handling techniques
§ Barricade
§ Debugging aids
(1) Protecting Programs From Invalid Inputs
对来自外部的数 据源要仔细检查,例如:文件、网络数据、用户输入等
(2) Barricade 设置路障
类的public方法 接收到的外部数据都应被认为是dirty的,需要处理干净再传递到 private方法——隔离舱
(3) Debugging Aids
最后
以上就是鳗鱼服饰为你收集整理的7.3Assertions and Defensive Programming断言与防御式编程7.3Assertions and Defensive Programming断言与防御式编程的全部内容,希望文章能够帮你解决7.3Assertions and Defensive Programming断言与防御式编程7.3Assertions and Defensive Programming断言与防御式编程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复