- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 异常处理 学习目标: 理解异常和错误控制 能够熟练对异常进行处理 理解异常类的层次结构 能够创建自己的异常类 8.1 异常概述 程序错误分成三类: 语法错 语义错 逻辑错 8.1.1 异常的基本概念 举例2:数组下标越界异常的处理 8.1.2 异常处理机制 出现异常时,Java系统自动产生一个异常对象,然后将它传递给Java运行时系统,这个异常产生和提交的过程称为抛出异常; 8.3 异常类的层次结构和主要方法 Exception子类有两种: RuntimeException和非运行时异常。 8.3 异常类的层次结构和主要方法 Java语言的各种错误类和异常类被组织到了不同的包中。 Java.lang、java.util、java.io、java.awt中的层次结构(图8-3至图8-8) 异常类的构造方法: Exception() Exception(String message) 异常类的主要方法: String getMessage() Void printStackTrace() String toString() 8.2 异常处理 对运行时异常,可不做处理,由系统自动处理。 使用try~catch~finally语句捕获异常。 使用throws语句抛出异常。 使用throw语句人为抛出异常。 8.2.1 try-catch语句 语法结构: try { 可能产生异常的代码段; } catch(异常类1 对象名1) { 处理语句组1;} catch(异常类2 对象名2) { 处理语句组2;} …… [ finally {最终处理语句;}] 举例:使用多个catch子句 8.2.2 throw语句和throws子句 1、Throw语句 作用:明确的抛出一个异常对象。 语法格式: 举例:throw语句应用 8.2.2 throw语句和throws子句 2、throws子句 throws语句放在方法参数表之后,方法体之前;用来声明一个方法中可能抛出的各类异常,各个异常之间用逗号隔开。 明确指出方法自己不捕获某异常,而传给上级,即让调用它的其他方法捕获该类异常。 分析下面程序的运行结果 举例: 键盘读入两个数,分别做除数和被除数,进行除法运算。 说明: 8.2.3 创建自己的异常 内置异常不可能足以捕获所有错误,因此需要用户自定义的异常类。 用户自定义的异常类通常继承 Exception 类。 class 自定义异常类名 extends Exception { 异常类体; } 8.2.3 创建自己的异常 举例: 实验四 实验地点:软二、三 实验时间:周五3单元 实验内容:继承和接口 实验内容 编写图形系统,能够创建圆、矩形、直线,这些图形可以设置颜色、改变大小、移动位置。 要求: (1)将各图形的类放入到包中 (2)使用接口定义各图形类的基类 (3)测试类(即含有main方法的类)放在包外,创建各图形的对象,通过对象的上转型对象的方式修改图形的大小和改变颜色 键盘输入文件名,读取文件内容。其中,文件中包含数据值,文件的第一行包含数据值的个数,其余行包含数据,如下所示: 3 1.45 -2.1 0.85 计算数值的累加结果。 * * * * 在程序执行期间,会有许多意外的事件发生。这些错误在程序编译期间无法找到,但会影响到程序的正常执行。我们把运行出现的错误叫做异常 如:除数为0,数组下标越界,在指定的磁盘上打开不存在的文件、网络无法连接等。 对于一个实用的程序来说,处理异常的能力是一个不可缺少的组成部分,它的目的是保证程序在出现异常时依然继续执行下去。 Exception in thread main java.lang.ArithmeticException: / by zero at ExceptionDemo1.main(ExceptionDemo1.java:4) public class ExceptionDemo1{ public static void main(String []args){ int a=0; System.out.println(8/a); // 除数为0 } } 举例1:系统对除数为0的异常的处理 Exception in thread main java.lang.ArrayIndexOutOfBoundsException at ExceptionDemo2.main(Exception
文档评论(0)