面向对象程序设计第六章.ppt_第1页
面向对象程序设计第六章.ppt_第2页
面向对象程序设计第六章.ppt_第3页
面向对象程序设计第六章.ppt_第4页
面向对象程序设计第六章.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计 Java Thomas Wang 汪涛 2009年11月16日 课程目录 第1章Java快速入门第2章Java基本语法第3章Java语句与控制结构第4章面向对象编程第5章深入介绍 类第6章Java异常处理机制第7章常用系统类第8章图形用户界面第9章高级组件第10章多线程机制第11章图形与多媒体处理第12章访问数据库第13章综合应用程序实例 第六章Java异常处理机制 程序中的漏洞 bug 总是无处不在 即使您认为程序中应该没有错误了 漏洞总会在某个时候钻出来困扰您 第六章Java异常处理机制 以往需要程序员完成的程序出错情况判别Java提供了异常处理机制来协助开发人员避开可能的错误 通过系统抛出 throw 的异常 Exception 程序可以很容易地捕获 catch 并处理发生的异常情况 6 1什么是异常处理机制 6 1 1错误 Error 与异常 Exception 1 error表示恢复不是不可能但很困难的情况下的一种严重问题 比如说内存溢出 不可能指望程序能处理这样的情况 2 exception如 运算除0 或数组越界等 这样的现象为异常 对于异常 可以再程序里加入异常处理代码来处理 程序仍可以正常运行 它表示一种设计或实现 6 1 1错误 Error 与异常 Exception Error uncheckedException checked事实证明 一个设计了异常处理的程序 可以长时间地可靠运行 而且不容易发生致命的错误 例如程序被迫关闭甚至系统终止等 6 1 2异常的发生原因 1 Java的异常当java违反了java语言的语言规则时 java虚拟机就会发出错误信号 这就是java异常 2 原因 1 java虚拟机检测到的非正常执行状态 2 throw语句 3 异步异常 6 1 3如何处理异常 1 第一步抛出异常 2 第二步捕获异常 6 3异常的处理 try 被监视的代码段 出现问题系统抛出异常 交由其后的catch代码段处理 catch 异常类型e 处理方法 catch 异常类型e 处理方法 finally 始终都会执行的代码段 例题6 1 publicclassTC1 publicstaticvoidmain String args System out println 这是一个异常处理的例子 n try intI 10 I 0 catch ArithmeticExceptione System out println 异常时 e getMessage finally System out println 总是要被执行的语句finally 例题6 1说明 如果catch语句中异常类的类型为Exception catch也能正常捕获 因为Exception是ArithmeticException的父类如果不确定发生哪种类型的异常 最好指定为Exception 否则如果捕获一个不同类型的异常 将会发生意想不到的情况 例题6 2 不匹配的例子 publicclassTC2 publicstaticvoidmain String args System out println 这是一个异常处理的例子 n try inti 10 i 0 catch IndexOutOfBoundsExceptione System out println 异常时 e getMessage finally System out println 总是要被执行的语句finally ArithmeticException 例题6 3 多catch publicclassTC3 publicstaticvoidmain String args System out println 这是一个异常处理的例子 n try inta args length System out println na a intb 42 a intc 1 c 42 99 catch ArithmeticExceptione System out println 发生了被0除 e catch IndexOutOfBoundsExceptione System out println 发生了数组下标越界 e finally System out println 总是要被执行的语句finally 6 3 2throw语句 当程序发生错误而无法处理的是 会抛出对应的异常对象 除此之外 在某些时刻 您可能会想自行丢出异常 thrownewArithmeticException 举例说明 throw语句 publicclassThrowDemo publicstaticvoidmain Stringargs try doubledata 100 0 0 System out println 浮点数除以零 data if String valueOf data equals Infinity thrownewArthmeticException catch ArithmeticExceptione System out println e 6 3 3throws子句 如果在方法中会有异常的发生 而您并不想在方法中直接处理 而想要由调用方法的调用者来处理 则可以使用throws子句 来声明这个方法将会丢出的异常 privatevoidsomeMethod int arr throwsArrayIndexOutOfBoundsException ArithmeticException 一些语句 方法等 举例说明throws子句 publicclassThrowDemo privatestaticvoidthrowsTest throwsArithmeticException 这是只是一个测试 程序处理过程假设发生异常thrownewArithmeticException publicstaticvoidmain Stringargs try throwsTest catch ArithmeticExceptione System out println 捕获异常 6 4创建自己的异常类 classMyExceptionextendsException privateintx MyException inta x a publicStringtoString return 抛出异常MyException publicclassTC8 声明方法会抛出MyExceptionstaticvoidmethod inta throwsMyException System out println t此处引用method a if a 10 thrownewMyException a System out println 正常返回 publicstaticvoidmain Stringargs try System out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论