海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十一章 异常处理

第十一章异常处理 课程内容:异常与异常类型、处理异常、 finally子句、使用异常的警告、创建自己的 异常类 ■授课时间:2006/06/01 ■ 教学目标:了解Java的异常机制;学习如何在 程序运行期间产生异常前找到代码中的bug, 以及相关的小技巧 重点:处理错误、捕获异常、使用异常的一些 技巧 ■手 教学方法:讲授 ■教学过程:(省略) ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 课程内容: 异常与异常类型、处理异常、 finally子句、使用异常的警告、创建自己的 异常类 授课时间:2006/06/01 教学目标:了解Java的异常机制;学习如何在 程序运行期间产生异常前找到代码中的bug, 以及相关的小技巧 重点:处理错误、捕获异常、使用异常的一些 技巧 教学方法:讲授 教学过程:(省略) 第十一章 异常处理

处理错误 目标:返回到安全状态并且允许用户执行其 他命令 或者允许用户保存其工作并平缓终止该程序 无法完成的任务 程序控制权由错误地转移至错误处理器 错误的种类:用户输入错误、设备错误、物 理限制、代码错误等 异常发生时,抛出一个封装了错误信息的对 象,异常处理机制搜索相应的异常处理器对 该错误进行处理 ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 处理错误 目标:返回到安全状态并且允许用户执行其 他命令 或者允许用户保存其工作并平缓终止该程序 无法完成的任务 程序控制权由错误地转移至错误处理器 错误的种类:用户输入错误、设备错误、物 理限制、代码错误等 异常发生时,抛出一个封装了错误信息的对 象,异常处理机制搜索相应的异常处理器对 该错误进行处理

异常和异常类型 ClassNotFoundException IOException ArithmeticException Exception AWTException NullPointerException RuntimeException IndexOutOfBoundsExceptior Object Throwable Several more classes Several more classes LinkageError VirtualMachineError Error AWTError Several more classes ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 异常和异常类型 LinkageError Error AWTError AWTException Throwable ClassNotFoundException VirtualMachineError IOException Exception RuntimeException Object ArithmeticException NullPointerException IndexOutOfBoundsException Several more classes Several more classes Several more classes

异常的分类 任何异常对象总是Throwable类的实例 两个分支:Errori和Exception ©2006计算机系杨群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 异常的分类 任何异常对象总是Throwable类的实例 两个分支:Error和Exception

异常的分类(cont.) Eror类描述内部错误以及资源耗尽的情况,应用程 序不应该抛出此类型的对象 Exception类的两个分支:RuntimeException的子类, 以及不从它衍生的其他异常 从RuntimeException衍生出来的异常包括: ·错误的类型转换 ·数组越界访问 ·试图访问一个空指针 不是从RuntimeException衍生出来的异常包括: ·试图从文件尾后面读取数据 ·试图打开一个错误格式的UL ·试图构造一个不存在的类 ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 异常的分类(cont.) Error类描述内部错误以及资源耗尽的情况,应用程 序不应该抛出此类型的对象 Exception类的两个分支:RuntimeException的子类, 以及不从它衍生的其他异常 从RuntimeException衍生出来的异常包括: • 错误的类型转换 • 数组越界访问 • 试图访问一个空指针 不是从RuntimeException衍生出来的异常包括: • 试图从文件尾后面读取数据 • 试图打开一个错误格式的URL • 试图构造一个不存在的类

异常的分类(cont.) “如果出现RuntimeException,则一定是你的 错误” Error的子类以及RuntimeException[的子类称 为末检查(unchecked)异常 其他的异常都被称为已检查(checked)异常 ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 异常的分类(cont.) “如果出现RuntimeException,则一定是你的 错误” Error的子类以及RuntimeException的子类称 为未检查 (unchecked)异常 其他的异常都被称为已检查(checked)异常

声明、抛出和捕获异常 methodl() 4444444444444444 method2 ( throws Exception claim exception if (an error occurs) try catch exception throw new Exception(); throw exception invoke method2; } catch (Exception ex) Process exceptio; ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 声明、抛出和捕获异常 method1() { try { invoke method2; } catch (Exception ex) { Process exception; } } method2() throws Exception { if (an error occurs) { throw new Exception(); } } catch exception throw exception claim exception

声明异常 public void myMethod() throws IOException public void myMethod() throws IOException,OtherException ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 声明异常 public void myMethod() throws IOException public void myMethod() throws IOException, OtherException

抛出异常 throw new TheException(); TheException e new TheException(; throw e; ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 抛出异常 throw new TheException(); TheException e = new TheException(); throw e;

抛出异常的例子 public Rational divide (Rational r)throws Exception { if (r.numer ==0) { throw new Exception(denominator cannot be zero"); } long n numer*r.denom; long d denom*r.numer; return new Rational(n,d); ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 抛出异常的例子 public Rational divide(Rational r) throws Exception { if (r.numer == 0) { throw new Exception("denominator cannot be zero"); } long n = numer*r.denom; long d = denom*r.numer; return new Rational(n,d); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第六章 类的继承性.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第八章 图形程序设计入门.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第五章 使用对象对象与类编写程序.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第二章 基本数据类型与基本操作.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第九章 创建用户界面.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第三章 控制语句.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第七章 数组和向量.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第一章 Java入门(主讲:杨厚群).ppt
- 海南大学:《Java语言程序设计》课程教学大纲 Java Programming.pdf
- 《Visual Basic程序设计》课程电子教案(PPT课件)第9章 界面设计.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第8章 文件.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第7章 图形操作.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第6章 常用控件.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第5章 数组.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第4章 基本的控制结构.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第3章 VB语言基础.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第2章 程序设计入门.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第1章 Visual Basic程序设计概述(海南大学:吴星).ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第10章 过程.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap12_文件.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十三章 多线程.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十二章 国际化.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十五章 输入输出.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十六章 网络.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十四章 多媒体.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第十章 applet和高级图形界面.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第四章 方法.ppt
- 石河子大学:《微机原理与接口技术》课程教学大纲(负责人:刘恩博).pdf
- 石河子大学:《微机原理与接口技术》课程授课教案(任课教师:李栓明).doc
- 石河子大学:《微机原理与接口技术》课程教学实验指导书(试用).doc
- 《微型计算机技术及应用》课程教材课件(PPT讲稿)第1章 微型计算机概述.pptx
- 《微型计算机技术及应用》课程教材课件(PPT讲稿)第2章 16位微处理器.pptx
- 《微型计算机技术及应用》课程教材课件(PPT讲稿)第3章 16位和32位微处理器的指令系统.pptx
- 《微型计算机技术及应用》课程教材课件(PPT讲稿)第5章 微型计算机和外设的数据传输.pptx
- 《微型计算机技术及应用》课程教材课件(PPT讲稿)第6章 串并行通信和接口技术.pptx
- 《微型计算机技术及应用》课程教材课件(PPT讲稿)第7章 中断控制器DMA控制器和计数器定时器.pptx
- 绍兴文理学院:《生物摄影》课程教学资源(讲义)生物摄影讲义(主讲:田润刚).pdf
- 华南农业大学:《大学计算机基础》课程教学课件(习题与解答)第一章 计算机及信息技术概述.doc
- 华南农业大学:《大学计算机基础》课程教学课件(习题与解答)第二章 计算机信息基础.doc
- 华南农业大学:《大学计算机基础》课程教学课件(习题与解答)第三章 计算机硬件体系结构.doc