- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 异常处理 本章要点 异常类的继承关系 抓抛模型 try-catch-finally关键字 throw和throws关键字 异常简介 程序运行过程时都可能发生会打断程序正常执行的事件。比如除数为零0、数组下标越界、文件找不到、内存不足等。 Java中的异常也采用了OO的思想,所有的异常都使用类来描述。程序产生异常,我们通常称为抛出(throw)异常,此时系统JVM会自动的实例化一个异常类的对象,对象中保存了具体的异常描述信息。 所有非正常状况的类分为两种,即:Error , Exception. Java异常处理 利用抓抛模型处理异常 利用面向对象的方法来处理异常 异常类型 Object 类的直接子类Throwable描述了所有被虚拟机抛出的非正常状况。一般情况下很少用Throwable,而是使用它的两个子类Error、Exception。 Error类特指应用程序在运行期间发生的严重错误。如:虚拟机内存用尽、堆栈溢出等等。一般情况下这种错误都是灾难性的,所以没有必要使用异常处理机制处理Error。 Exception类有几十个子类,描述了不同类型的异常,其中以RuntimeException为代表的一些类,称为非检查性异常(unchecked Exception),以IOException为代表的一些类为检查性异常(checked Exception)。所谓的检查和非检查是指编译器在编译时是否检查。如果代码中存在检查性异常,必须进行异常处理,否则编译时不能通过;而非检查性异常编译时不进行检查,到运行时才会显现。 Java为何分别处理这两类异常? 一般我们不在 代码中处理非检查性异常,这类异常都在运行时抛出。原因主要时由于程序员经验不足或是思维不缜密造成。如:数组越界异常(ArrayIndexOutOfBoundsException)、整数除以0异常(ArithmeticException)等,这类异常其实就是我们通常说的bug。所以,这类异常应通过反复测试尽量避免,而不应该靠异常处理机制来解决。 检查性异常不同,就算程序员再有经验,也是难以避免。如:用户连接数据库的异常(SQLException),如果是由于数据库服务器没有启动或是网络中断引起的,我们程序员是无法避免的。又如:程序要读取光盘中的文件,而用户忘记插入光盘,此时则抛出文件没找到异常(FileNotFoundException),程序员也无法避免。 综上,异常处理机制主要处理检查性异常而不是非检查性异常和Error。 异常类型(续) 方法调用堆栈 后进先出:方法A调用方法B的时候,只有方法B先完成后,方法A才完成。先执行的方法总是后完成,后执行的方法先完成,类似于数据结构中的堆栈--后进先出,我们称之为方法调用堆栈。 课堂示例: project:javaBase4_5DegreeProjects-degree5TestMethodStack.java 如示例,仅有一条语句抛出异常,会导致所有的方法都不能正常结束。如果不想出现这样的情况,我们就要使用java的异常处理机制-抓抛模型。 抛出异常对象 01 public class Test{ 02 int[] arr=new int[3]; 03 public static void main(String[] args){ 04 new Test().methodOne(); 05 System.out.println(main); 06 } 07 public void methodOne(){ 08 methodTwo(); 09 System.out.println(One); 10 } 11 public void methodTwo(){ 12 methodThree(); 13 System.out.println(Two); 14 } 15 public void methodThree(){ 16 System.out.println(arr[3]); 17 System.out.println(Three); 18 } 19 } 捕获异常对象 01 public class Test{ 02 int[] arr=new int[3]; 03 public static void main(String[] args){ 04 new Test().methodOne(); 05
您可能关注的文档
- 06变送器验作业指导书.doc
- 06年一级造师试题《专业工程管理与实务(装饰装修)》.doc
- 06 固体物理 141 倒格子.ppt
- 06土石方挖工程.doc
- 06商品的价值量.ppt
- 0609糖尿病药物概览.ppt
- 06_服务业跨国公司.ppt
- 06机电1班刘欣30号 毕业设计说明书.doc
- 06第4章SQL Server数据库的管理.ppt
- 06级物流理专业教学计划.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)