《Robust Java中文版 Java异常处理、测试与调试》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)Stephen Stelting著;韩宏志译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302113416
  • 页数:239 页
图书介绍:本书在复杂API和架构中使用异常,应用程序的异常处理总策略,在复杂的分布式多层系统中处理异常,成熟的异常处理设计模式,使用开放源工具执行测试和调试。提高健壮性的重要体系结构决策。

第Ⅰ部分 入门篇 1

第1章 异常概述 1

1.1 简介 1

目录 1

1.2 异常概念 3

1.3 异常类层次结构 4

1.4 异常的处理或声明选项 5

1.4.1 处理异常:try、catch和finally 5

1.4.2 try-catch-finally的规则 6

1.4.3 声明异常 7

1.4.4 声明异常的规则 7

1.5 可检测异常和非检测异常 7

1.6 异常的API 8

1.7 小结 10

2.2 选择处理或声明 11

第2章 异常处理技术和实践 11

2.1 简介 11

2.3 标准异常处理选项 12

2.3.1 记录异常和相关信息 12

2.3.2 要求用户或应用程序输入信息 14

2.3.3 使用默认或替换数据值 15

2.3.4 将控制传给应用程序的其他部分 16

2.3.5 将异常转化为其他形式 16

2.3.6 忽略问题 17

2.3.7 重试操作 17

2.3.8 采用替换或恢复操作 18

2.3.9 使系统作好停止准备 18

2.4 异常处理注意事项 18

2.5 处理异常时提倡的事项 18

2.6 处理异常时忌讳的事项 19

2.5.4 根据情况将异常转换为业务上下文 19

2.6.1 一般小要忽略异常 19

2.5.1 尽可能地处理异常 19

2.5.2 具体问题具体解决 19

2.5.3 记录可能影响应用程序运行的异常 19

2.6.2 不要使用覆盖式异常处理块 20

2.6.3 一般不要将特定异常转换为更通用的异常 20

2.6.4 不要处理能够避免的异常 21

第3章 高级异常处理概念 22

3.1 简介 22

3.2 自定义异常 22

3.2.1 定义异常类 23

3.2.2 声明方法抛出自定义异常 23

3.2.3 找到故障点,新建异常并加上关键字throw 24

3.3 链表异常 25

3.4 异常的本地化和国际化 26

3.4.2 为不同地区继承ResourceBundle类 27

3.4.1 创建ResourceBundle子类来存储消息 27

3.4.3 创建覆盖getLocalizedMessage的自定义异常类并用ResourceBundle检索消息 28

3.5 子类 30

3.6 接口和抽象类的异常声明 30

3.7 异常栈跟踪 31

3.8 低级异常处理 34

第4章 异常和线程 39

4.1 简介 39

4.2 多线程系统中的异常 40

4.3 同步代码块中的异常 40

4.4 线程活动的异常风险 42

4.5 基于线程的通信的异常 43

4.6 死锁 46

4.7 取消线程 47

第5章 记录和断言 48

5.1 记录API 48

5.1.1 何时使用记录API 48

5.1.2 记录API简介 48

5.1.3 记录API详述 49

5.1.4 标准记录配置 53

5.2 断言 56

5.2.1 使用断言 57

5.2.2 在应用程序中使用断言 57

第Ⅱ部分 异常处理和设计 59

第6章 异常处理和设计 59

6.1 简介 59

6.2 面向对象设计的原理 59

6.2.1 将异常集成到OOD设计以便维护 62

6.2.3 故障模式分析 69

6.2.2 “可维护性设计”的优缺点 69

6.3 小结 70

第7章 Java核心语言中的异常 71

7.1 简介 71

7.2 基本数据类型 71

7.2.1 概述 71

7.2.2 用法 72

7.2.3 常见问题 72

7.2.4 一般建议 74

7.3 Object类和Java中的对象 74

7.3.1 概述 74

7.3.2 潜在问题概述 74

7.4 数组 79

7.4.1 索引 79

7.4.2 数组存储管理 79

7.5 java.lang包中的接口 80

7.4.3 对象输入 80

7.6 String类和StringBuffer类 81

7.6.1 String类 82

7.6.2 StringBuffer类 82

7.7 BigDecimal类和BigInteger类 82

7.8 包装类 83

第8章 集合和I/O 84

8.1 简介 84

8.2 集合架构 84

8.2.1 概述 84

8.2.2 集合架构的注意事项和相关问题 85

8.2.3 集合架构中的异常和错误 89

8.3 I/O API 91

8.4 I/O子类的异常和错误 94

8.4.1 一般问题 94

8.4.2 特定流类型的问题 95

8.5 新I/O API——NIO 100

8.6 NIO API中的异常 101

8.6.1 缓冲区 102

8.6.2 选择器 106

第9章 分布式Java APl 108

9.1 简介 108

9.2 分布式通信的基本原理 108

9.2.1 Java的分布式通信模型 109

9.2.2 分布式JavaAPI的问题 110

9.2.3 Java异常模型 110

9.2.4 分布式通信模型和标准问题 111

9.3 远程方法调用(RMI) 112

9.3.1 基本RMI通信模型 112

9.3.2 RMI的常见问题 113

9.3.3 RMI的异常模型 116

9.4 Java命名和目录接口 121

9.4.1 JNDI的常见问题 122

9.4.2 常见JNDI操作的异常模型 123

9.5 Java数据库连接 125

9.5.1 JDBC中的异常 125

9.5.2 数据库通信技术的通用问题 126

9.5.3 标准JDBC生命期 128

9.6 小结 132

第10章 J2EE 133

10.1 简介 133

10.2 基本J2EE应用程序模型 133

10.2.1 J2EE应用程序模型 135

10.2.2 J2EE中的异常 136

10.3 客户层 136

10.4 Web层 137

10.4.1 声明性错误处理 138

10.4.2 Web层中的组件 139

10.4.3 Servlet和Filter的异常模型:编程错误处理 140

10.4.4 Servlet和Filter异常模型 140

10.4.5 Servlet组件的常见问题和风险 142

10.4.6 JSP的异常模型 144

10.4.7 JSP的直接错误转发 144

10.4.8 JSP异常模型 145

10.4.9 JSP的转换和运行时错误 146

10.4.10 自定义标记库 146

10.5 EJB层 147

10.5.1 标准EJB方法 147

10.5.2 EJB的常见问题 149

10.5.3 bean特有的问题 150

10.5.4 EJB异常模型 152

10.5.5 客户端调用方法的生命期管理 153

10.5.6 容器回调方法 155

10.5.7 从容器看异常 156

10.6 J2EE和EJB的事务 157

10.7 J2EE和异常处理的全局考虑事项 160

10.8 J2EE异常处理要考虑的因素 161

10.8.1 日志记录 161

10.8.2 异常开销 161

10.8.3 网络层的延迟 163

10.8.4 J2EE系统其他的最佳实践 163

第Ⅲ部分 有效使用异常、错误和处理 165

第11章 体系结构、设计和异常模型 165

11.1 简介 165

11.2.1 故障的代价 166

11.2.2 成功的收获 166

11.2 架构师必须考虑异常和错误 166

11.3 体系结构、设计和开发 167

11.3.1 架构师和设计师的分工 167

11.3.2 开发人员的角色 168

11.4 异常模型的关键体系结构决策 168

11.5 异常模型的体系结构决策 169

11.5.1 处理和传播策略 170

11.5.2 异常和错误类模型 171

11.5.3 常用服务 173

11.6 编写健壮的Java代码 174

第12章 模式 176

12.1 简介 176

12.2 体系结构模式 177

12.2.1 层 177

12.2.2 模型-视图-控制器 178

12.4.1 创建器 179

12.4 创建模式 179

12.3 设计模式 179

12.4.2 Singleton模式 181

12.5 结构模式 182

12.5.1 适配器 182

12.5.2 复合模式 183

12.5.3 facade模式 184

12.5.4 代理模式 185

12.6 行为模式 187

12.6.1 职责链 187

12.6.2 命令模式 188

12.6.3 观察者模式 188

12.6.4 状态模式 189

12.6.5 策略模式 190

12.7 J2EE模式 191

12.8 集成层 192

12.9 表示层 194

12.9.1 Front Controller 194

12.9.2 Intercepting Filter 195

12.10 业务层 196

12.10.1 Service Locator 196

12.10.2 Session Facade 197

12.11 小结 198

第13章 测试 199

13.1 测试的目的和意义 199

13.2 对测试的一些误解 199

13.2.1 误解一:开发人员不应该测试代码 200

13.2.2 误解二:开发人员应完成代码的所有测试 200

13.2.3 误解三:仅用一种方式测试应用程序 200

13.3 盒外和盒内测试类型 201

13.3.1 测试类型 201

13.2.4 误解四:完全测试应用程序 201

13.3.2 测试的角色和职责 203

13.4 Java的测试难点 204

13.5 测试实践 204

13.5.1 测试制度化 204

13.5.2 测试的组织方法 207

13.6 如何管理和运行测试 210

13.7 测试何时结束 212

13.7.1 般测试标准 212

13.7.2 开发人员测试标准 213

第14章 调试 214

14.1 简介 214

14.2 调试的含义 214

14.3 调试原理和实践 215

14.4 调试策略 216

14.5 调试所见和方法 219

14.5.1 低级测试技术 220

14.5.2 中级测试技术 222

14.5.3 高级测试技术 223

14.6 调试面临的特殊挑战 224

14.6.1 在Java应用程序中调试非Java技术 224

14.6.2 架构抛出的异常 225

附录A 分析处理.声明的测试结果 226

附录B JUnit简明指南 230

B.1 基本信息 230

B.2 安装JUnit 230

B.3 运行JUnit 230

B.4 JUnit测试架构的体系结构 231

B.5 编写JUnit测试 232

B.6 测试设计的指导原则 238

附录C MyBuggyServlet——组件验证问题 239