我是靠谱客的博主 鳗鱼服饰,最近开发中收集的这篇文章主要介绍7.3Assertions and Defensive Programming断言与防御式编程7.3Assertions and Defensive Programming断言与防御式编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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断言与防御式编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部