Java程序设计---异常处理
第九章
异常处理
9.1 Java异常处理机制 异常处理机制 9.2 异常处理方式
9.1 异常处理机制Java使用异常对程序给出一个统一 使用异常对程序给出一个统一 和相对简单的抛出和处理错误的机制。 和相对简单的抛出和处理错误的机制。 如果一个方法本身能抛出异常,调用者 如果一个方法本身能抛出异常, 可以捕获异常使之得到处理; 可以捕获异常使之得到处理;也可以回 避异常,这时异常将在调用的堆栈中向 避异常, 下传递,直到被处理。 下传递,直到被处理。
异常类在Java中,将异常情况分为 中 将异常情况分为Exception(异常)和 (异常) Error(错误)两大类。 Error 类对象由 Java 虚拟机 (错误)两大类。 生成并抛出; 生成并抛出;Exception 类对象由应用程序处理或抛出。 Object Throwable Exception Error
异常类的继承结构
Exception子类的继承关系ExceptionClassNotFoundException ClassNotSupportedException IllegalAccessException InstantiationException InterruptedException NoSuchMethodException RuntimeException ArithmeticException ArrayStoreException ClassCastException IllegalArgumentExceptionIllegalThreadStateException NumberFormatException
Exception子类(续)
IllegalMonitorStateException IndexOutOfBoundsException ArrayIndexOutOfBoundsException StringIndexOutOfBoundsException NegativeArraySizeException NullPointerException
SecurityException
Exception 类的主要方法public Exception( ); public Exception(String s); public String toString( ); public String getMessage( );
9.2 异常处理方法
异常处理的方法有两种: 1. 使用try…catch…finally结构对异常 进行捕获和处理; 2. 通过throws和throw抛出异常。
1 try…catch…finally结构结构对异常进行捕获和处理, 在 Java中, 可以通过 中 可以通过try…catch…finally结构对异常进行捕获和处理 , 其形式 结构对异常进行捕获和处理 如下: 如下: try { 可能出现异常的程序代码 } catch (异常类名 异常类名1 异常对象名1) 异常类名 异常对象名 { 异常类名 对应的异常处理代码 异常类名1对应的异常处理代码 } catch (异常类名 异常类名2 异常对象名2) 异常类名 异常对象名 { 异常类名 对应的异常处理代码 } 异常类名2对应的异常处理代码 ┇ [ finally { 必须执行的代码 }]
说明将可能发生异常的程序代码放置在try程序块中。 将可能发生异常的程序代码放置在 程序块中。程序运 程序块中 行过程中,如果该块内的代码没有出现任何异常, 行过程中,如果该块内的代码没有出现任何异常,后面 的各catch块不起任何作用。但如果该块内的代码出现了 块不起任何作用。 的各 块不起任何作用 异常,系统将终止try块代码的执行 块代码的执行, 异常,系统将终止
块代码的执行,自动跳转到所发生 的异常类对应的catch块中,执行该块中的代码。 块中, 的异常类对应的 块中 执行该块中的代码。 其中的finally块是个可选项 , 如果含有 块是个可选项, 其中的 块是个可选项 如果含有finally块 , 无论 块 异常是否发生, 块的代码必定执行。 异常是否发生,finally块的代码必定执行。 块的代码必定执行 一个try块可以对应多个 块可以对应多个catch块 , 用于对多个异常类进 一个 块可以对应多个 块 行捕获。 行捕获。
Java实例——捕获数组下标越界异常public class Exception1 { public static void main(String args[]) { try { int a[]={1,2,3,4,5}, sum=0; for (int i=0; i<=5; i++) sum=sum+a[i]; System.out.println("sum="+sum); System.out.println("Successfully! "); }
catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException detected"); } finally { System.out.println(" Programm Finished! "); } } }
例 --捕获算术异常public class Exception2{ public static void main(String args[]) { try { int x, y; x=15; y=0; System.out.println(x/y); System.out.println("Computing successfully!"); }
catch (ArithmeticException e) { System.out.println(" ArithmeticException catched !" ); System.out.println("Exception message:"+e.toString()); } finally { System.out.println("Finally block."); } }
2 抛出异常抛出异常语句通常情况下,异常是由系统自动捕获的。但程序 通常情况下,异常是由系统自动捕获的 但程序 员也可以自己通过throw语句抛出异常。throw语 语句抛出异常。 员也可以自己通过 语句抛出异常 语 句的格式为: 句的格式为: throw new 异常类名(信息) 异常类名(信息) 其中异常类名为系统异常类名或用户自定义的异 其中异常类名为 或 的异 常类名, 信息”是可选信息。 常类名,“信息”是可选信息。如果提供了该信 方法的返回值中将增加该信息内容。 息,toString()方法的返回值中将增加该信息内容。 方法的返回值中将增加该信息内容
Java实例——抛出多个异常public class Exception3 { public static int Sum(int n){ if (n < 0) throw new IllegalArgumentException("n应该为正整数!"); 应该为正整数! 应该为正整数 int s = 0; for (int i=0; i<=n; i++) s = s + i; return s; }
…… 此处隐藏:1321字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)