第四章、异常(Exceptino)_第1页
第四章、异常(Exceptino)_第2页
第四章、异常(Exceptino)_第3页
全文预览已结束

下载本文档

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

文档简介

1、Java程序设计第四章、例外(Exception)一、基本概念1 编程中的错误 编译链接 运行 java源程序 javac java*.java (出现编译错误) *.class(出现运行错误)(1)编译错误由于源程序存在语法错误,未能通过有源程序到字节码的编译过程而产生,它是由语言自身的编译系统来检测和报告的。没有编译错误是一个程序能正常运行的基本条件,只有所有的编译错误都改正了,源代码才可以被编译成目标码或字节码。(2)运行错误运行错误是在程序的运行过程中产生的错误。根据错误的性质不同,分为系统运行错误和逻辑运行错误。系统运行错误是指程序在执行过程中引发了操作系统的问题,如死机、死循环等。

2、逻辑运行错误是指程序不能实现编程人员的设计意图和设计功能而产生的错误。如不能正确排序、计算结果出错等。 排查运行错误,最有效的手段是设置断点,出错时显示相关出错信息。Java允许我们设置相应的断点(异常),蒱获(catch)并将出错信息抛出(throw)。2、例外(异常)处理机制(1)例外(Exception)例外又称异常,是特殊的运行错误对象,对应着Java语言特定的运行错误处理机制。(2)例外处理机制java中定义了很多例外类,每个例外类都代表一种运行错误,其中包含了运行错误的信息和处理错误的方法等内容。每当Java程序运行过程中发生了一个可识别的运行错误时(该错误有一个例外类与之对应),

3、系统即产生一个例外,保证整个系统可靠运行。3、例外类的结构与组成 Throwable类是java.lang包中的一个类,他派生了两个子类:Exception和Error,其中Error类由系统保留,Exception类则供应用程序使用。 Throwable Exception Error (1)系统定义的运行例外系统定义的运行例外例外对应的系统运行错误ClassNotFouneException未发现欲装载使用的类ArrayIndexOfBoundsException数组越界使用FileNotFoundException未找到指定的文件或目录IOException输入、输出错误NullPoin

4、terException引用空的尚无内存空间的对象ArithmeticException算术错误,如除数为0OutOfMemoryException内存不足,不能再分配新对象SecurityException安全性错误,如Applet欲读写文件StackOverflowException系统运行超出堆栈空间MalformedURLExceptionURL格式错误(2)例外类的构造函数public Exception()public Exception(String s) /通常s对应错误描述(3)例外类的常用方法public string toString() /返回异常信息public St

5、ring getMessage() / 返回异常对象详细信息public void printStackTrace() / 显示异常对象堆栈轨迹(函数、方法使用情况)二、例外(Exception)的抛出(Throw)1、 系统自动抛出的例外 所有由系统定义的例外均可由系统自动抛出,并作相应处理(中断程序执行,显示异常原因)2、 语句抛出的例外用户程序中出现的例外不可能依靠系统自动抛出,必须借助于Throw语句定义何种情况下出现异常错误,并抛出该例外类对象。用Throw语句抛出例外对象的语法格式为:修饰符 返回类型方法名(参数列表) throw 例外类名列表 throw 例外类名; 三、例外处理

6、1、 例外处理的几种方法(1)自动处理 由java虚拟机自动进行处理,主要指系统已定义的运行例外。(2)使用trycatchfinally 语句蒱获异常利用系统定义的异常,建立用户自己的运行异常蒱获机制。(3)用户自定义异常 用户程序特有的运行异常,由用户自定义异常类处理。2蒱获异常基本格式: try / 测试 / 调用产生异常的方法及其它Java语句; catch (异常类名 异常对象名) / 可以有多个,处理对应异常 / 异常处理; catch (异常类名 异常对象名) / 异常处理; finally / 可以省略,程序的统一出口 / 最终处理 ; 开始 try(语句块) catch(异常

7、 e1) catch(异常 e2) catch(异常 e3) catch(异常 e4) finally(语句块)后续语句说明:(1) 一个try语句块后跟多个catch块,每个catch块都有一个例外类对象作为参数。(2) 一个例外对象能否被一个catch语句块所接收,主要看该例外对象与catch块的例外参数的匹配情况。(3) 例外对象与catch块的匹配是按照catch块的先后次序进行的,应认真设计各catch块的排列顺序。(4) catch块中通常包括输出里外的相关信息,如例外名称、产生例外的方法名等。3、用户自定义的例外系统定义的例外主要用来处理系统可以预见的较常见的运行错误,对于某个用户应用程序所特有的运行错误,需用户自行定义例外,处理用户程序中特定的逻辑错误。用户自定义例外时,一般需完成如下的工作:(1) 声明一个新的例外类,使之以Exception类、其它某个已经存在的系统例外类或用户例外类为父类。(2) 为新的例外类定义属性和方法,或重载父类的属性或方法

温馨提示

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

评论

0/150

提交评论