版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/8/2,1,第9章,异常处理,2020/8/2,2,通过本章的学习,主要掌握以下知识点: 异常处理的机制 捕获与处理异常 多异常处理 抛出异常 自定义异常类 本章的重点: 异常处理的机制 捕获与处理异常 本章的难点: 自定义异常类,2020/8/2,3,9.1 异常处理的基本概念,在Java中的编译错误是由于编写的程序代码中存在着语法错误,而未能通过由源代码到字节码的编译过程而产生的错误。语法错误是由语言的编译系统负责检测和报告。没有编译错误是一个程序能正常运行的基本条件,只要没有编译错误,Java的源代码才能被编译成字节码。,2020/8/2,4,9.1.1 错误与异常,运行错误是
2、程序运行过程中产生的错误,根据性质的不同,运行错误又分为系统运行错误和逻辑运行错误。 系统运行错误简称为错误,是指程序在执行过程中所产生对操作系统的损害。 逻辑运行错误是指程序不能实现程序员的设计意图和设计功能而产生的错误,这种错误也被称为异常。,2020/8/2,5,9.1.2 Java语言的异常处理机制,Java异常处理机制,简单地说,就是程序在运行时,发现异常的代码可以“抛出”一个异常,运行系统“捕获”该异常,并交由程序员编写的相应代码进行异常处理。,2020/8/2,6,9.2 异常处理类,由于Java语言中定义了很多异常类,而每个异常类都代表一种运行错误,所以说,Java的异常类是处
3、理运行时错误的特殊类,类中包含了该运行错误的信息和处理错误的方法等内容。,2020/8/2,7,程序对错误与异常的处理方式有三种:一是程序不能处理的错误;二是程序应避免而不捕获的运行时异常;三是必须捕获的非运行时异常。,2020/8/2,8,9.3 捕获与处理异常,在Java语言中,异常处理是通过try、catch、finally、throw、throws五个关键字来实现的。异常处理的理论似乎很繁琐,但实际使用时并不复杂。,2020/8/2,9,当一个异常类的对象被捕获或接收后,用户程序就会发生流程跳转,系统终止当前的流程而跳转到专门的异常处理语句块,或直接跳出当前程序和java虚拟机回到操作
4、系统。,2020/8/2,10,在Java的异常处理机制中,提供了try-catch-finally语句来捕获和处理一个或多个异常,其语法格式如下:,try catch (异常类名 形参对象名) finally ,2020/8/2,11,catch块紧跟在try块的后面,用来接收try块可能产生的异常,一个catch语句块通常会用同样方式来处理它所接收到的所有异常,但是实际上一个try块可能产生多种不同的异常,如果希望能采取不同的方法来处理这些不同的异常,就需要使用多异常处理机制。,2020/8/2,12,【例9.2】使用try-catch-finally语句对例9.1中产生的异常进行捕获与处
5、理。,/app9_2.java 异常的捕获与处理 public class app9_2 public static void main(String args) int i; int a=1,2,3,4; for (i=0;i5;i+) try System.out.print(“a”+i+”/”+i+”=”+(ai/i); catch(ArrayIndexOutOfBoundsException e) System.out.print(“捕获到了数组下标越界异常”); ,2020/8/2,13,【例9.2】续,catch(ArithmeticException e) System.out.
6、print(“异常类名称是:”+e); /显示异常信息 catch(Exception e) System.out.println(“捕获”+e.getMessage()+”异常!”); /显示异常信息 finally System.out.println(“ finally i=”+i); System.out.println(“继续!”); ,2020/8/2,14,程序运行结果为: 异常类名称是:java.lang.ArithmeticException:/ by zero finally i=0 a1/1=2 finally i=1 a2/2=1 finally i=2 a3/3=1
7、finally i=3 捕获到了数组下标越界异常 finally i=4 继续!,2020/8/2,15,9.4 抛出异常,根据异常类的不同,抛出异常的方法也不相同。 1系统自动抛出的异常:所有系统定义的运行异常都可以由系统自动抛出。 2使用throw语句抛出的异常:用户程序自定义的异常必须借助于throw语句来抛出异常。使用throw语句抛出异常对象的语法格式为: throw 由异常类所产生的对象; 3抛出异常的方法与调用方法处理异常; 4.由方法抛出异常交系统处理。 见教材的例9.39.6,2020/8/2,16,9.5 自定义异常类,创建用户自定义异常时,一般需完成如下的工作。 1声明一个新的异常类,用户自定义的异常类必须是Throwable类的直接或间接子类。 2为用户自定义的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类所对应的错误信息。 用户自定义异常有可能依靠系统自动抛出,而必须借助于throw语句来定义何种情况算是产生了此种异常对应的错误,并应该抛出这个异常类的新对象。 见教材例9.7,2020/8/2,17,总结:通过本章的讨论,可以看出对异常的处理不外乎两种方式: 使用try-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学化学(分析化学研究)试题及答案
- 2025年中职建筑工程类(建筑安全规范)试题及答案
- 2026年新型储能(固态电池等)项目营销方案
- 2025年中职(美容美体艺术)美甲实务试题及答案
- 2025年大学电气工程及其自动化(自动控制原理)试题及答案
- 2026年装修设计(室内空间布局)试题及答案
- 2025年中职新能源汽车制造与检测(电池故障排查)试题及答案
- 2025年大学大四(港口航道与海岸工程)港口工程施工综合评估试题及答案
- 2025年中职第一学年(汽车运用与维修)汽车底盘检修试题及答案
- 2025年高职园艺技术(设施园艺栽培)试题及答案
- 钬激光在皮肤科手术中的临床应用
- 2024年4月自考00612日本文学选读试题
- 《海上风电场工程岩土试验规程》(NB/T 10107-2018)
- 设备安装施工方案范本
- 地产公司设计部工作总结
- 卫生院副院长先进事迹材料
- 《期权基础知识》课件
- 复发性抑郁症个案查房课件
- 人类学概论(第四版)课件 第1、2章 人类学要义第一节何为人类学、人类学的理论发展过程
- 《功能性食品学》第七章-辅助改善记忆的功能性食品
- 2023秋季学期国开思政课《思想道德与法治》在线形考(专题检测1-7)试题及答案
评论
0/150
提交评论