- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 异常处理 主讲人:程裕强 主要内容 理解程序异常 掌握异常类继承体系关系 掌握try-catch结构 熟悉try-catch-finally结构 掌握异常抛出机制 理解异常处理的优缺点 了解断言 6.1 引例 Java编译器可以帮我们检查出程序中的语法错误,比如变量未定义、语句后缺少分号等语法错误。 在程序运行时,可能由于程序内部或外部原因出现一些意外的情况,称作异常。比如下面程序,编译时通过,只有运行时才会暴露出错误。 public class A{ static A getInstance(){ return null; //返回一个空对象 } } public class PrimerTest1{ public static void main(String[] args) { A a=A.getInstance(); a.toString(); //运行报错 } } 主程序PrimerTest1中通过A的静态方法getInstance取得一个对象,然后调用该对象的toStrng方法。主程序编译时通过,执行时报错。 对于这个简单的异常,可以在程序中添加条件判决即可解决。 对于一些更为隐蔽的运行时错误是很难发现的,即使发现了,我们在短时间内也难以判定错误的根源,也就是难以使用条件判定分离出预知的错误。 6.2 异常类 Java提供了所有异常的父类Throwable,只有Throwable的子孙类才是异常类。 Throwable有3个重要的子孙类:Exception、Error、RuntimeExcption。 Error类表示错误,比如内存溢出,程序无法恢复不需要程序处理。 Exception表示程序可能恢复的异常,其子类名均以Exception做后缀。 RuntimeExcption是运行时异常,是由于程序自身的问题引起的,比如数组下标越界。 通过异常类对象,可以获取程序发生异常的信息,以便对异常进行处理。 Exception类提供了2个常用的方法:getMessage()返回该异常的详细描述字符串; printStackTrace()输出该异常的跟踪栈信息。 还可以调用Exception类继承的toString()方法,输出异常类信息。 6.3异常处理机制 对出现异常的代码进行处理称为异常处理。异常处理的能力,也是判定一门编程语言程序的重要标准。异常处理机制可以让程序具有更好的容错性,程序更加健壮。 6.3.1 try-catch 常用的异常处理语句try-catch try{ 可能会出现异常的语句; }catch(Exception e){//捕捉到异常对象e 处理异常; } 例1:通过异常处理机制来改进“引例”。 public class PrimerTest3{ public static void main(String[] args){ try{ A a=A.getInstance(); a.toString(); }catch(Exception e){ System.out.println(e); System.out.println(e.getMessage()); e.printStackTrace(); } } } 6.3.2 try-catch-finally 捕捉异常的完全格式如下: try{ 可能会出现异常的语句; }catch(Exception e){ 处理异常; }finally{ 异常发生,方法返回之前,总是要执行的代码; } 一个try-catch-finally结构,只要try块开始执行了,finally块里面的代码保证执行一次并且只执行一次。 例2:演示try-catch-finally语句进行异常处理。 public class TestTry{ public static void main(String[] args) { try{ System.out.println(flag1); int i=1/0; System.out.println(flag2); }catch(Exception e){ //捕获异常 System.out.println(flag3); System.out.println(e); }finally{ System.out.println(flag4); } } } 由运行结果可知:
您可能关注的文档
- 新Java编程与应用教程 教学课件 张莉 java_11.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 1_ 第7章 Java的图形与用户界面.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 第3章 类、类的继承和接口.ppt
- 新Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 段新娥 贾宗维 2_ chap9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 java9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 Java11.ppt
- 新Java程序设计教程 教学课件 张克军 陆迟 孙海伦 庞丽娜 第10章 网络程序设计.ppt
- 新Java程序设计教程 项目式 教学课件 李桂玲 P1 1 1程序的运行环境.ppt
- 新Java程序设计实例教程教学课件 刘志成 ch05_Java图形用户界面技术.PPT
- 新Java程序设计实例教程教学课件 刘志成 ch07_Java输入输出技术.PPT
最近下载
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案).pdf VIP
- 2024届福建省莆田市高三第二次教学质量检测二模生物试卷.doc VIP
- 电梯维修及维护人员的安全知识与技能培训课件.pptx VIP
- 小学新教育实验实施方案(详细).docx
- 23中英文双语单片机车辆防碰撞外文文献翻译:基于超声波与单片机嵌入式系统开发集成应用的汽车防撞系统设计.doc VIP
- 八年级数学上册《分式》教案教材分析.pdf VIP
- 大华DSS5000系列-客户端操作手册-.docx
- 2013款上汽通用别克君越_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 人教版数学二年级下册全册教学课件(2023年新教材).pptx
- 越人歌-钢琴伴奏谱.pdf
文档评论(0)