版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 异常处理,5.1 程序错误与处理 5.2 Java的异常处理,1,PPT学习交流,5.1 程序错误与处理,5.1.1 程序错误、发现时刻及错误处理原则 5.1.2 面向过程与面向对象语言的错误处理方式比较 5.1.3 Java的错误和异常,2,PPT学习交流,5.1.1 程序错误、发现时刻及错误处理原则,语法错 违反语法规范的错误称为语法错,在编译时发现。 语义错 在语义上存在错误,则称为语义错,运行时才能被发现。 逻辑错 系统无法发现逻辑错。,3,PPT学习交流,5.1.2 面向过程与面向对象语言的错误处理方式比较,面向过程语言错误处理方式的缺陷 不进行范围检查 采用if语句进行事先
2、判断以防止出现错误。 面向对象语言异常处理的思想 异常处理机制的优越之处体现在以下两方面。 从语法上看,异常处理语句将程序正常代码与错误处理代码分开,使程序结构清晰,算法重点突出,可读性强。 从运行效果看,异常处理语句使程序具有处理错误的能力。,4,PPT学习交流,5.1.3 Java的错误和异常,Java语言是安全的 Java语言提供严密的语法规则。 Java在编译和运行时严格检查错误。 Java提供异常处理机制。 Java提供内存自动管理方式。 错误与异常 错误(error)指程序运行时遇到的硬件或操作系统的错误。 异常(exception)指在硬件和操作系统正常时,程序遇到的运行错。,5
3、,PPT学习交流,图5.1 Java程序发现错误和异常,6,PPT学习交流,3. 错误类和异常类,Error错误类: JVM生成并抛出。 Exception异常类 除数为0的算术异常、数组下标越界异常、空指针异常等。 【例5.1】 发现除数为0错。 运行时能够发现整数除法中除数为0的语义错 运行时不能发现浮点数除法中除数为0的语义错 【例5.2】 发现数组下标越界的语义错。,7,PPT学习交流,4. 程序对错误与异常的三种处理方式,程序不能处理错误 程序应避免而不捕获的异常,如除数为0、数组下标越界等。 必须捕获的异常,8,PPT学习交流,5.2 Java的异常处理,5.2.1 异常类说明 5
4、.2.2 异常处理语句 5.2.3 抛出异常 5.2.4 自定义异常类,9,PPT学习交流,Java把程序运算中可能遇到的错误分为两类: 一类是非致命性的,通过某种修正后程序还能继续执行。这类错误称作异常。 另一类是致命性的,即程序遇到了非常严重的不正常状态,不能简单地恢复执行,这就是错误。,10,PPT学习交流,Java提供了异常处理机制,在Exception类中定义了程序产生异常的条件。 对待异常通常并不是简单地结束程序,而是转去执行某段特殊代码处理这个异常,设法恢复程序继续执行。,11,PPT学习交流,Java实现了C+风格的异常。 当程序中发生异常时,称程序产生了一个异常事件,相应地生
5、成异常对象。 生成的异常对象传递给Java运行时系统。,12,PPT学习交流,异常产生和提交的这一过程称为抛出。 异常发生时,Java运行时系统从生成对象的代码块开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理,这一过程称为捕获。,13,PPT学习交流,所有的包中都定义了异常类和错误类。 Exception类是所有异常的父类 Error类是所有错误的父类,这两个类同时又是Throwable的子类。,14,PPT学习交流,异常和错误类的层次结构如图所示:,15,PPT学习交流,5.2.1 异常类说明,Exception异常类 public class Throwabl
6、e implements Serializable public Throwable() public Throwable(String message) public String getMessage() /获得异常信息 public String toString() /获得异常对象的描述信息 public void printStackTrace() /显示异常栈跟踪信息 public class Exception extends Throwable public Exception() public Exception(String s) ,16,PPT学习交流,2. Runtim
7、eException运行异常类,算术异常ArithmeticException:除数为0 空对象异常NullPointerException int a = null; a0 = 1; /对空数组中的元素进行操作,产生空对象异常 String str = null; System.out.println(str.length(); /调用空对象的方法,产生空对象异常 类型强制转换异常ClassCastException Object obj = new Object(); String str = (String) obj;,17,PPT学习交流,2. RuntimeException运行异常
8、类,负数组长度异常NegativeArraySizeException int a = new int -1;/产生负数组长度异常 数组下标越界异常ArrayIndexOutOfBoundsException int a = new int1; a1 = 1;/产生数组下标越界异常 数值格式异常NumberFormatException int j = Integer.parseInt(abc); /产生数值格式异常,18,PPT学习交流,5.2.2 异常处理语句,异常处理语句语法 try 语句1 /存在潜在异常的代码 catch (异常类 异常对象) 语句2 /捕获到异常并进行处理的代码 f
9、inally 语句3 /最后必须执行的代码,无论是否捕获到异常 【例5.3】 异常的捕获和处理。,19,PPT学习交流,图5.4 异常处理语句的执行流程,20,PPT学习交流,正常情况下: try无异常 跳过catchfinally继续 Catch子句匹配规则: 抛出异常对象与catch子句参数类型相同 抛出异常对象是catch子句参数类的子类 按照先后次序捕获抛出的异常对象,只捕获一次。 多个catch子句需要按照异常类从子类到父类的次序依次排列。 finally语句是最后必须执行的代码,无论是否产生异常。,21,PPT学习交流,public class Try2 public static
10、 void main (String args) int i=0; int a = 5,6,7,8; for(i=0;i5;i+) try System.out.print(a+i+/+i+=+(ai/i); catch(ArrayIndexOutOfBoundsException e) System.out.print(捕获数组下标越界异常!); catch(ArithmeticException e) System.out.print(捕获算术异常!); ,22,PPT学习交流,catch(Exception e) System.out.print(捕获+e.getMessage()+异常
11、!); /显示异常信息 finally System.out.println( i=+i); System.out.println(继续!); ,23,PPT学习交流,5.2.3 抛出异常,抛出自定义异常对象的throw语句 throw 异常对象 public void set(int age) if (age0 /抛出异常 【例5.5】 抛出自定义异常对象。,24,PPT学习交流,2. 方法声明抛出异常的throws子句,修饰符 返回值类型 方法(参数列表) throws 异常类 public static int parseInt(String s) throws NumberFormat
12、Exception 【例5.6】 声明抛出异常的方法与方法调用者处理异常。 构造方法和重载的set()方法声明抛出异常。 main()方法声明抛出异常交由系统处理。,25,PPT学习交流,5.2.4 自定义异常类,【例5.7】 自定义异常类。 public class IllegalAgeException extends Exception /无效年龄异常类 public IllegalAgeException(String s) public IllegalAgeException() /捕获自定义异常类,而非Exception类 catch(IllegalAgeException e) e.printStackTrace(); /显示异常栈跟踪信息 ,26,PPT学习交流,理解Java异常处理模型三种操作: 声明异常、拋出异常和捕获异常。 (1)声明异常 在方法声明中使用throws关键字声明异常 public void myMethod() throws IOException (2) 拋出异常 发现错误后,创建异常实例,拋出异常 throw new IllegalArgumentException (3)捕获异常 try/catch语句捕获
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广告营销方案模版(3篇)
- 营销方案脆皮战略(3篇)
- 穹顶吊顶基础施工方案(3篇)
- 财办部年度工作总结及年度工作计划(2篇)
- 肝炎病毒特异性表观遗传标记的筛选及功能鉴定
- 深圳湾A园区营销策略优化与创新研究
- 深圳发展银行发展战略:回顾、现状与展望
- 深入剖析接触网波动特性及波速利用率提升策略
- 淋洗与电化学还原联用技术:重金属污染土壤修复的创新路径
- 涵泳古今:高中文言文教学的深度变革与实践探索
- 2025全国翻译资格(水平)考试阿拉伯语二级笔译试卷
- 太原市城市供热收费管理办法
- 手机工作摄影培训课件
- GB/T 45660-2025电子装联技术电子模块
- 博物馆资产管理制度
- T-CAMDI 020-2019 一次性使用静脉留置针隔离塞
- 华佗古本五禽戏知到智慧树章节测试课后答案2024年秋安徽中医药大学
- 国家职业技术技能标准 6-04-05-02 涂装工 人社厅发200966号
- DB33 656-2013 用能单位能源计量管理要求
- 《电容式电压互感器》课件
- 物流行业员工试用期考核标准
评论
0/150
提交评论