Java基础实践教程-异常_第1页
Java基础实践教程-异常_第2页
Java基础实践教程-异常_第3页
Java基础实践教程-异常_第4页
Java基础实践教程-异常_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

6.1Java异常的作用和分类6.2Java异常处理6.3自定义异常6.1

Java异常的作用和分类为了能够更精确地识别异常情况并处理,Java语言构建了一套由类组成的异常体系,并对其进行分门别类,图6-1-1显示了Java语言的异常体系架构。Java异常体系中的根类是Throwable类,它位于Java.lang包里面,是一个公有的非抽象的类。Throwable类直接继承了Object类,实现了Serializable接口。该接口是java.io包里面的一个接口,主要服务于类的序列化及对象的文件读写。Throwable类提供了五种构造方法,具体如表6-1-1所示。6-1-1中,前两种构造方法比较常用,其功能分别为创建一个Throwable对象和创建一个Throwable对象并指明它的详细信息。Throwable提供了Java异常和错误最基本的信息输出方法,包含getMessage方法、printStackTrace方法和toString方法,它们的基本信息如表6-1-2所示。Throwable类具有两个重要的子类,分别为Error类和Exception类。Error类包含了很多子类,表示Java程序运行时产生的系统内部错误或资源耗尽错误,如注释语法错误、断言错误和JVM错误等。这些错误都是非常严重的,通常仅靠修改程序本身仍不能恢复执行,需要进行较大的代码改动。好比一个人得了非常严重的疾病,不能轻易治愈。例如,使用Java命令去运行一个不存在的类就会出现Error。大多时候,Error往往是由于编程人员自身的技术瓶颈或知识储备不足而造成的。Exception类称为异常类,它表示程序本身可以处理的错误,。在开发Java程序中进行的异常处理都是针对Exception类及其子类。程序在编译时报出的异常称为编译时异常,在运行时报出的异常,称为运行时异常。在Exception类的子类中仅RuntimeExecption类及其子类属于运行时异常,其他类均属于编译时异常。在示例6-1-1中报出的java.util.InputMismatchException异常就是运行时异常的子类。编译时异常出现时代码不能通过编译,很容易被发现,编程人员必须对其进行处理;而运行时异常能够通过编译,只是不处理的话会影响代码的健壮性,因此编程人员在编程时应尽可能地考虑到各种情景,使用代码逻辑来规避或处理运行时异常。Java运行时异常是开发者需重点关注的内容,它包含了非常丰富的类库,大部分异常类的名字都可以直观地反映出它的异常信息,可以先快速地浏览一下运行时异常的类有哪些,有一个大致的印象。在后续编程时使用到哪个类,再回到帮助文档看它的详细说明。Java异常类的使用比较简单,实际上大部分异常类只是继承了Throwable类的方法,没有重写父类的方法,也没有再定义新的方法,在使用时除了异常描述内容不同之外,其他基本是一样的。在Exception类中,除了直接继承自Throwable类和Object类原有的方法之外,没有再自定义新的成员变量及成员方法,也没有对Throwable类的成员方法进行重写,如表6-1-3所示。6.2Java异常处理6.2.1Java异常处理的方式Java异常处理的方式分为两种:捕获异常和抛出异常。(1)捕获异常:将可能发生异常的语句包含在一个try_x0002_catch或try-catch-finally代码块中进行捕获处理。(2)抛出异常:在方法声明时,声明该方法抛出异常,在该方法被调用的位置接收并处理异常。由于方法可以调用另一个方法,形成多层方法的调用,因此方法的异常理论上可以不停地向它的调用者抛出,直到抛给了main方法。如果main方法不作处理继续向外抛出,就会把异常抛给JVM。当JVM接收到异常时,程序会结束运行。因此,抛出异常虽然是Java异常处理的一种方式,但通常抛出的异常总会在抛给JVM之前被捕获处理。6.2.2捕获异常Java捕获异常通过关键字try、catch和finally组合成try-catch或者try-catch-finally代码块。它的语法格式为:上面的语法格式中,try代码块有且仅有一个,catch代码块可以有一个或者多个,finally代码块可以没有。6.2.3抛出异常Scanner类中的throwFor方法在方法体内使用了Java关键字throw抛出了一个异常,它的源代码为:在官方定义的类库中存在着很多抛出异常的成员方法。开发者也可以在自定义方法中抛出异常。在Java语言中抛出异常的方法有三种。第一种是系统自动抛出异常,也就是运行时异常。第二种是使用throw关键字在方法内显式地抛出一个异常对象,它的语法格式为:6.3自定义异常如果Java语言提供的异常类不能满足程序设计的需求,可以自定义Java异常类。自定义异常类的基本步

温馨提示

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

评论

0/150

提交评论