第8章 异常
异常的引入 异常 If you can‘t handle an exception, don’t catch it.如果你不能控制她,不要碰她。 Catch an exception as close as possible to its source.如果你想追求她,首先你要靠近她。 Log an exception where you catch it, unless you plan to re-throw it.如果你已得到她,就要好好了解她,除非你想抛弃她。 Never throw unchecked exceptions in your methods just because they clutter the method signature.如果你已抛弃她,就要提醒别人继续追求她。 第8章 异常及其处理 异常 程序中的错误分三类: 编译错误 通过编译其检查定位 运行时错误 通过异常处理来解决 逻辑错误 通过程序员调试解决 不处理会怎样? 运行时发生的错误称为异常。 如果不对异常进行处理,那么一旦引发异常,程序将突然中止。 要么控制权返回给操作系统。 要么系统处于死机崩溃状态。 因此,安全健壮的程序设计语言应当引入有效的异常处理机制 异常类 产生运行时错误的情况很多,需要多种不同的异常信号来表示。 Java提供丰富的异常类,异常是异常类的对象。 异常类 异常类 常见系统预定义异常类: 产生的异常是什么? 异常实际上是一个异常实例 第8章 异常及其处理 异常的处理 要保证程序在出现异常以后能够正常运行,需要对异常进行捕获和处理。 通过try-catch语句对异常进行捕获并处理 教材 113页 例8.4 异常处理流程 未产生异常情况: try语句结束后异常处理结束 产生异常并捕获成功情况: try语句在产生异常处中断,转到catch语句执行; 产生异常未捕获情况: 所在方法中断; 多异常的处理 对可能产生的多种异常可以通过多个catch子句进行捕获和分别处理。 教材114页 例8.6 注意: 多个catch子句中,前面catch的异常不能是后面catch异常的父类 一般把捕获Exception异常的catch子句写在最后,能够捕获所有的异常。 finally子句 try-catch语句后可以加finally子句 写在finally子句中的语句无论异常是否产生,无论产生的异常是否捕获成功都要执行 教材115页 例8.7 异常处理语法 try{ 可能抛出异常的语句组; }catch ( 异常类1 e){ 异常处理语句组1; } ….. }catch ( 异常类n e){ 异常处理语句组n; }finally{ 语句组; } 异常结构执行流程 第8章 异常及其处理 异常声明(异常报告) 如果一个方法中存在未处理的异常,则需要在该方法头上用throws关键字声明该异常。 教材116页 例8.8 通过异常声明可以将异常报告给方法的调用者。 RuntimeException及其子类的异常可以不声明。 第8章 异常及其处理 异常的抛出 通过throw抛出一个异常对象 thow new 异常类名(); 注意:throw后不能写语句; 一旦抛出异常程序立刻转入catch语句 提问 假设,MyMath类是由张三写的,而MyMathTest类是由李四写的,李四使用MyMathTest类时,怎么知道会有异常呢? 在Java中,我们可以通过throws关键字来解决这个问题。 举例 class MyMath{ public int devide(int x,int y) throws Exception{ if(y==0) throw new Exception(); int result=x/y; return result; } } 异常的抛出 抛出和处理可以分开 异常处理 public static void main(String[] args){ try{ MyMath m=new MyMath(); int result; result=m.devide(3,0); System.out.println(the result is + result); }catch(Exception e){ System.out.println(e.getMessage()); } } 异常的抛出 第8章 异常及其处理 自定义异常类 自定义异常类 程序员可以自定义异常类,用于描述特定的异常情况 继承Exception类就可以定义自己的异常类 示例 :教材118页 例8.10 异常父类的方法 异常中的
您可能关注的文档
最近下载
- 支部党员大会会议记录(支委会选举范例).docx VIP
- 深圳市宝安区2025-2026学年第一学期五年级语文期末学业质量评估卷(原卷+答案)统编版.docx VIP
- 山桐子种植加工、旅游项目可行性研究报告商业计划书.docx VIP
- 山桐子种植及种苗培育种植加工可行性研究报告申请备案.doc VIP
- 和田地区2026年度地直机关公开遴选公务员、事业单位公开选聘工作人员备考题库及完整答案详解1套.docx VIP
- 山桐子合作种植协议合同.docx VIP
- 2025年香氛未来趋势报告-英敏特.docx VIP
- 报告正文2014年太阳绿宝.pdf VIP
- 2025年高考:云南物理--试题及答案.pdf VIP
- 广东省深圳市宝安区2025-2026学年五年级上学期期末学业质量评估语文试卷.docx VIP
原创力文档

文档评论(0)