- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Java程序设计》第05章讲解
共21页 程序设计 第5章 异常处理与单元测试 学习目标 理解异常的概念。 掌握异常处理的方法。 理解和掌握自定义异常。 理解单元测试与软件质量的关系。 掌握单元测试。 会写单元测试用例。 重难点 重点 异常的概念。 捕获异常。 声明抛出异常。 自定义异常。 单元测试的概念。 编写测试用例。 测试用例的执行和记录。 难点 捕获异常。 声明抛出异常。 自定义异常。 编写测试用例。 目录 5.1 异常概述 异常是程序中的不正常情况 严重的——称为错误 无法处理 不需处理 程序将中止 一般的——称为异常 应该处理 否则程序中止 常见的异常 下述代码将产生一个异常 因为除数为0,产生的异常名为算术异常ArithmeticException 其它常见的异常有 空指针异常NullPointerException 空指针异常非常常见,一般是引用数据类型没有正确初始化或被赋空值而引起的。 数组下标越界异常ArrayIndexOutOfBoundsException 数组操作时可能出现 类型转换异常ClassCastException 不正确的类型转换 异常的分类 三大类 错误是不需处理,也无法处理的 运行时异常是可以处理,也可以不处理的 非运行时异常是必须处理的 出现异常而没有处理,程序将中止 5.2 异常处理 异常的产生 虚拟机生成 由某些类的实例生成 在程序中由throw语句生成 异常的处理 捕获异常——积极的异常处理机制 当产生异常时,JVM将异常对象交给一段称为捕获(catch)异常的代码进行处理 声明抛出异常——消极的异常处理机制 如果一个方法不知道应该如何处理所出现的异常,则可在方法定义时,声明抛出(throws)异常 捕获异常 捕获异常是通过try-catch-finally语句实现的: 例如: 实例 捕获三种异常:算术异常、下标越界异常和普通异常 声明抛出异常 声明抛出异常是不捕获异常,将可能出现的异常交给调用的方法来处理。格式是: 例如: 实例 例中readInt()方法不捕获异常,而是交给上一级处理 5.3 自定义异常 5.3.1 自定义异常类 是Throwable类的直接或间接子类。 通常是声明为Ecxeption类的子类: 例如 在实际的软件设计中通常会创建一组自定义异常类,形成一个有继承关系的层次结构。 5.3.2 抛出异常 自定义异常的使用是通过抛出(throw)异常实现的: 然后在代码的其它部分捕获异常和声明抛出异常 目的是将异常通过方法调用链将异常传递到能够处理异常的一级 5.3.3 自定义异常类的使用 自定义异常类的使用分三个步骤: ①设计并声明自定义异常类。 ②在出现异常处抛出异常,该方法还要声明抛出异常。 ③在处理异常处捕获并处理异常,或再次声明抛出异常。 自定义异常之后,将其作为普通的异常对待即可 5.4 单元测试 测试的目的 提高软件代码的质量,提高软件的可靠性 最简单的测试 System.out.print()语句 复杂的测试 白盒测试 黑盒测试 集成测试等 单元测试是白盒测试的一种 5.4.1 JUnit介绍 单元(Unit) 是指一个可独立进行的工作,独立进行指的是这个工作不受前一次或接下来的工作的结果影响 一个单元可以是一个方法,也可以是一组方法。 Java单元测试(JUnit) 为Java程序开发过程中实现单元测试提供的一种框架(工具) JUnit框架的二个基本组成部分是: Test Case(测试用例) 为一个测试目标而编写的一组测试 Test Suite(测试用例集) 针对一个功能的所有测试用例的集合 5.4.2 Test Case 单元测试的过程分为 设计测试用例 在设计阶段进行 编写测试用例代码 在代码编写阶段(之前或同时) 执行测试用例 代码开发过程中 代码修改后。 模块集成过程中。 项目完成前。 记录并撰写测试报告 实例 断言成功表示测试成功 本章复习 本章学习了下列知识 Java语言的异常处理机制 异常的概念和类型 捕获异常和声明抛出异常 自定义异常的声明与使用 单元测试 测试的重要性 编写单元测试 单元测试的实施 Java程序设计与实训 幻灯片 *,共32页 Java程序设计与实训 幻灯片 *,共37页 5.1 异常概述 5.2 异常处理 5.3 自定义异常 5.4 单元测试 public class ArithmeticExceptionDemo { public static void main(String[] args) { int a = 0; int b = 8 / a; // a 的值为0,被0除是无法计算的
文档评论(0)