




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/8/3,1/18,第5章 异常处理,5.1 程序错误与处理 5.2 Java的异常处理,2020/8/3,2/18,5.1 程序错误与处理,5.1.1 程序错误、发现时刻及错误处理原则 5.1.2 面向过程与面向对象语言错误处理方式比较 5.1.3 Java的错误和异常,2020/8/3,3/18,5.1.1 程序错误、发现时刻及错误处理原则,语法错 违反语法规范的错误,在编译时发现。 改正,重新编译。 语义错 语义上存在错误,运行时才能被发现。 逻辑错 系统无法发现逻辑错。,Java的异常处理机制是用来处理程序运行时错误的有效机制。通过系统抛出的异常,程序可以很容易地捕获并处理发生
2、的异常情况。,2020/8/3,4/18,5.1.2 面向过程与面向对象语言错误处理方式比较,面向过程语言 不进行数据范围检查。 采用if语句进行事先判断以防止出现错误。 面向对象语言 异常处理机制 从语法上看,异常处理语句将程序正常代码与错误处理代码分开,使程序结构清晰,算法重点突出,可读性强。 从运行效果看,异常处理语句使程序具有处理错误的能力。,2020/8/3,5/18,5.1.3 Java的错误和异常,根据错误的性质将运行错误分为两种类型: 错误(error)指程序运行时遇到的硬件或操作系统的错误,如内存溢出、虚拟机错误等。 异常(exception)指在硬件和操作系统正常时,程序遇
3、到的运行错。如除法运算除数为0,打开文件时文件不存在等。,程序本身不能处理错误。由Java虚拟机生成Error类对象并抛出给系统。如:NoClassDefFoundError,异常必须被捕获和处理。Exception类,2020/8/3,6/18,异常类的层次结构,由Java虚拟机生成并抛出,Java程序不做处理,Java虚拟机运行时生成的异常,由系统检测交给缺省的异常处理程序,可能会带来意想不到的结果,必须捕获或声明,2020/8/3,7/18,异常举例1文件操作产生异常,/ Exception1.java import java.io.*; public class Exception1
4、public static void main(String args) FileInputStream fis=new FileInputStream(text.txt); int b; while(b=fis.read()!=-1) System.out.print(b); fis.close(); ,2020/8/3,8/18,/ Exception2.java public class Exception2 public static void main(String args) String langs=Java,Visaul Basic,C+; int i=0; while(i4)
5、 System.out.println(langsi); i+; ,异常举例2数组下标超界,2020/8/3,9/18,/ Exception3.java public class Exception3 public static void main(String args) int a=0; System.out.println(5/a); ,异常举例3被0除,2020/8/3,10/18,5.2 Java的异常处理,5.2.1 异常类说明 5.2.2 异常处理语句 5.2.3 抛出异常 5.2.4 自定义异常类,2020/8/3,11/18,5.2.1 异常类说明,RuntimeExcep
6、tion运行异常类,算术异常ArithmeticException:除数为0 空对象异常NullPointerException 类型强制转换异常ClassCastException Object obj = new Object(); String str = (String) obj; 负数组长度异常NegativeArraySizeException int a = new int -1;/产生负数组长度异常 数组下标越界异常ArrayIndexOutOfBoundsException int a = new int1;a1 = 1; /产生数组下标越界异常 数值格式异常NumberFo
7、rmatException int j = Integer.parseInt(abc);/产生数值格式异常,2020/8/3,12/18,5.2.2 异常处理语句,异常处理语句语法格式:,一个异常对象经历抛出、捕获及处理过程。创建一个异常类对象的过程称为抛出(throw)异常;获得异常对象的过程称为捕获(catch)异常;对异常对象执行相应操作的过程称为处理异常,异常对象由捕获它的语句进行处理。,try 语句1 /存在潜在异常的代码 catch (异常类 异常对象) 语句2 /捕获到异常并进行处理的代码 finally 语句3 /最后必须执行的代码,无论是否捕获到异常 ,【例5.3】 异常的捕
8、获和处理。,2020/8/3,13/18,异常处理语句的执行流程,【例5.4】求数组 元素平均值。,2020/8/3,14/18,5.2.3 抛出异常,抛出自定义异常对象的throw语句 格式: throw 异常对象,【例5.5】 抛出自定义异常对象。,public void set(int age) if (age0 /抛出异常 ,2020/8/3,15/18,例:throw语句的用法,public class TC5 static void throwProcess() try throw new NullPointerException(空指针异常); catch(NullPointer
9、Exception e) System.out.println(“n在throwProcess方法中 捕获一个+e.getMessage(); throw e; ,public static void main(String args) try throwProcess(); catch(NullPointerException e) System.out.println(再次捕获:+e); ,2020/8/3,16/18,throws用来表明一个方法中可能抛出的各种异常,并说明该方法会抛出异常但不捕获异常。,2. 方法声明抛出异常的throws子句,格式:修饰符 返回值类型 方法(参数列表)
10、 throws 异常类 例如: public static int parseInt(String s) throws NumberFormatException,【例5.6】声明抛出异常的方法与方法调用者处理异常。,public class TC6 static void mathod()throws IllegalAccessException System.out.println(n在mathod中抛出一个异常); throw new IllegalAccessException(); public static void main(String args) try mathod(); catch(IllegalAccessException e) System.out.println(在main中捕获异常:+e); ,import java.io.*; public class TC7 publi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度碧桂园绿色建材采购合同范本
- 二零二五年度保密协议范本:知识产权保密与商业秘密保护结合
- 2025年度生态环境影响评估场地调查与监测委托合同
- 二零二五年度互联网金融服务保密协议范本
- 二零二五版城市环卫垃圾搬运处理协议
- 二零二五年度人工智能技术研发合作协议及99年员工劳动合同升级
- 2025版家政服务公司保姆合作协议
- 二零二五年安全评价与安全防护设施设计合同
- 2025年白酒产品线上线下联合推广总代理合同
- 2025版财务信息共享与保密协议标准版
- 2025北师大版新教材七年级上册英语单词表(精校打印)
- 2025至2030年中国电弧故障断路器(AFCI)行业市场竞争态势及产业前景研判报告
- 2025年安徽省中考英语试卷(含答案)
- 思想道德与法治2023年版电子版教材-1
- 2025年区域经济学期末考试题及答案
- 2025房屋租赁合同范本模板
- 物联网安全风险评估-第2篇-洞察阐释
- 上汽英飞凌无锡分公司第二代框架式功率模块产品导入年产150万片模块项目环评资料环境影响
- 2025注册核安全工程师考前冲刺试卷带答案
- (高清版)DG∕TJ 08-2166-2015 城市地下综合体设计规范
- 国家数据局《2024年“数据要素×”项目案例集》
评论
0/150
提交评论