版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电脑基础实例上机系列丛书Java程序设计教程清华大学出版社第7章 异常处置机制学习目的 本章要点上机练习 习 题电脑基础实例上机系列丛书Java程序设计教程清华大学出版社学习目的 编写程序中不能够不出现错误,Java言语把程序运转中能够遇到的错误分为两类:一类是非致命的错误,经过修正后还能继续运转,这种错误就是异常Exception;另外一类是致命错误,即系统不能恢复,这就是错误Error。 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社学习目的Java言语运用一种特殊的机制来处置异常,本章将经过详细例子来讲解Java怎样用try-catch-finally语句来实现这种机制,以及
2、怎样运用自定义异常类型来扩展Java系统的异常处置功能。经过本章学习,读者可处理Java编程中遇到的常见问题,使编程过程更加顺畅。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社本章要点 异常的概念异常和错误产生原理异常的处置机制如何自定义异常电脑基础实例上机系列丛书Java程序设计教程清华大学出版社Java中的异常 异常处置是Java言语中用于处置程序各种错误的一种机制,严谨地处置错误是保证程序效率和质量的关键。本节将详细引见Java言语中错误的根本概念。异常和错误的产生 异常的层次构造 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生 任何一种计算机言语
3、设计的程序在运转时都能够出现各种错误,常见的错误如除数为0、文件不存在、文件不能翻开、数组下标超越界限和内存不够用等。对于这种在运转中出现的错误,计算机系统中通常有两种处置方法。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生 由计算机系统本身直接检测程序错误,遇到错误时使程序终止运转。这种处置方法的优点是使程序设计比较简单。但是,对程序错误一概地采用终止运转方法,显然过于简单。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生 由开发人员在程序设计中兼顾错误检测、错误信息显示和出错处置。这种处置方法的优点是减少中途终止程序运转的能够性。但是,
4、要求开发人员在程序设计中不仅将精神用于正常处置过程,还要精心思索错误检测和处置,这会使程序变得复杂。 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生 并且,这类错误检测往往是多数程序中反复甚至在一个程序中多次反复。而另一方面,假设程序中某处忽略了应有的检测,又将引起程序总体结果的错误。 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生Java采用异常处置机制来处置程序运转中的错误。按照这种机制,将程序运转中的一切错误都看成一种异常,经过对语句块的检测,一个程序中一切的异常被搜集起来放在程序的某一段中去处置。在Java系统中,专门设置了一个调
5、用栈,此栈中装有指向异常处置方法的指针。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生在程序运转时,系统会把搜集到的异常和异常处置指针所指的处置类型逐个比较,假设找到相符的类型,那么就转向相应的方法处置,如没有在调用栈中找到相应的类型指针,那么终止程序运转,并显示解释信息。 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生在Java程序中,异常普通由以下两种缘由引起。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生程序中存在非法操作:最简单的例子就是除数为0的除法操作,这经常是开发人员出于无意或大意呵斥的,称为隐式
6、异常。常见的隐式异常可以经过java.lang包中的Throwable类的子类Error处置。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生程序运用throw语句引起的异常:这种异常是开发人员出于某种思索有意安排的,称为显式异常。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生在throw语句中,都会指出处置显式异常的对象,这些对象都是由java.lang包的类Throwable的子类Exception再派生的子类生成的,每个对象完成对某种异常的处置功能,这些对象综合起来实现各种异常处置。 电脑基础实例上机系列丛书Java程序设计教程清华大
7、学出版社异常和错误的产生【例7-1】 异常的产生光盘:源文件第7章例7-1.txt。 “HelloWorld.java”运行结果 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常和错误的产生该程序抛出一个越界异常。异常处置允许程序捕获异常,处置它们,然后程序继续执行。它是分层把关,因此,错误情况不会介入到程序的正常流程中。当错误情况发生时,错误与正常执行的代码在分别的代码块中被处置,这就更易识别和管理。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的层次构造 Java程序中的异常以类的层次构造组织。Throwable是一切异常类的父类,它是Object的直接子类。
8、Exception和Error是Throwable的直接子类,而RuntimeException是Exception的子类。这些异常类是可以检测的。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的层次构造电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的层次构造 在系统包java.lang、java.util、java.io和java中声明的异常类是规范异常类。这些规范异常类分为RuntimeException子类和其他Exception的子类两种。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的层次构造RuntimeException子类,由于R
9、untimeException子类是不可检测的异常类,所以这些规范异常类也是不可检测的异常类。除了RuntimeException子类以外的其他Exception的子类。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的层次构造下面分别引见这些类。不可检测的规范异常类 可以检测的规范异常类 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社不可检测的规范异常类java.langk中不可检测的规范异常类如下所示。ArithmeticException表示遇到异常的算术问题,比如被0整除。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社不可检测的规范异常类Array
10、StoreException表示试图把和数组类型不符合的值存入数组。ClassCastException表示试图把一个对象的援用强迫转换为不适宜的类型。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社不可检测的规范异常类IndexOutOfBound Exception表示下标越界。NullPointerException 表示试图运用一个空的对象援用。Security Exception 表示检测到了违反平安的行为。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社不可检测的规范异常类java.util中不可检测的规范异常类如下所示。EmptyStackException
11、表示试图访问一个空堆栈中的元素。NoSuchElementException 表示试图访问一个空向量中的元素。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社可以检测的规范异常类 java.lang中可检测的规范异常类如下所示。ClassNotFoundException表示具有指定名字的类或接口没有被发现。CloneNotSupportException表示克隆一个没有实现Cloneble接口的类。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社可以检测的规范异常类IllegalAccessException 表示试图用给出了完好的途径信息的字符串加载一个类,但是当前正在
12、执行的方法无法访问指定类,由于该类不是public类型或者放在别的包中。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社可以检测的规范异常类InstantiationException表示试图运用Class的newInstance方法创建一个对象实例,但是指定的对象没有被实例化,由于它是一个接口、笼统类或者另外一个数组。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社可以检测的规范异常类InterruptedException表示当前的线程正在等待,而另一个线程运用了Thread的interrupt方法中断了当前线程。电脑基础实例上机系列丛书Java程序设计教程清华大学出版
13、社可以检测的规范异常类java.io中可检测的规范异常类如下所示。IOException表示恳求I/O操作没有正常完成。EOFException表示在输入操作正常终了前遇到了文件终了符。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社可以检测的规范异常类FileNotFoundException表示在文件系统中,没有找到由文件名字符串指定的文件。InterruptIOException表示当前线程正在等待I/O操作完成,而另一个线程运用Thread的interrupt方法中断了当前线程。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常处置机制 程序运转时假设发生异常,即
14、自动终止运转并输出提示信息,异常处置就是对所发生的异常进展处置,从而防止出现死机或重启机器的景象。其重要性在于程序一方面要可以发现异常,另一方面还要可以捕获异常。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常处置机制Java言语提供的异常处置机制,有助于找出异常类型并恢复它们。异常的捕获和抛出 异常处置程序 自定义异常 运用举例抛出异常 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的捕获和抛出 在Java中采用try-catch-finally来进展异常的监视、捕获和处置,也可以经过throws语句抛出异常。含有异常处置程序的构造如下所示:try . /被监视
15、的代码段,一旦发生异常,即抛出给后面的catch语句电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的捕获和抛出 catch异常类型 e . /要处置的第一种异常catch异常类型 e . /要处置的第二种异常finally. /最终处置电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的捕获和抛出 编程人员首先把能够会发生异常情况的代码放在try语句段中,利用try语句对该段代码进展监视。假设发生了异常,那么交给下面的catch语句。catch可以正确执行的前提条件是能识别出抛出的异常就是本人可以处置的异常类型。电脑基础实例上机系列丛书Java程序设计教程清华大学出
16、版社异常的捕获和抛出假设catch中声明的异常类和抛出的异常类一样,或者是它的父类,catch就可以捕获任何这种异常类的对象。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社异常的捕获和抛出finally语句中是最终都要处置的代码段,无论try所指定的程序块中抛出或不抛出异常,也无论catch语句的异常类型能否与所抛出的异常的类型一致,finally所指定的代码都要被执行,这是一个一致的出口。通常放置进展资源去除的语句。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社 异常处置程序 假设异常发生后没有被捕获到,那么流程控制将把异常向下传送。也就是说:假设发生异常的方法1没有
17、处置异常的语句,就把异常传送给调用它的方法2,假设方法2也没有处置,那么就继续传送,直到传送到可以处置它的方法。 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社 异常处置程序 假设到最后还是没有找到可以处置异常的catch语句,那么在finally子句执行完以后,调用ThreadGroup中的uncaughtException方法,终止当前线程。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社 异常处置程序 假设开发人员希望在异常发生时也能有一段代码可以执行,那么应该运用finally子句。看下面的例子。【例7-2】 异常处置程序光盘:源文件第7章例7-2.txt。电脑基
18、础实例上机系列丛书Java程序设计教程清华大学出版社类“CatchDemo运转结果 类“CatchDemo”运行结果 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社 自定义异常 前面讲述了Java中的异常处置机制,如今引见如何创建自定义异常。普通自定义异常是从Exception类中派生出来的。【例7-3】 自定义异常光盘:源文件第7章例7-3.txt。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社类“catchdemo2运转结果 类“catchdemo2”运行结果 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社运用举例抛出异常 本节将以抛出异常为例进展讲解光盘:源文件第7章运用举例ExceptionDemo.txt。 类“ExceptionDemo”运行结果 电脑基础实例上机系列丛书Java程序设计教程清华大学出版社上 机 练 习 本次练习要求编写一个程序,同时捕获数组越界被0除的异常,阐明异常处置语句try-catch-finally的处置机制光盘:源文件第7章上机练习.txt。电脑基础实例上机系列丛书Java程序设计教程清华大学出版社类“Te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游景区纪检专员岗位面试要点
- 广东省广州市从化区2020-2021学年九年级下学期综合试卷道德与法治试题(含答案)
- 交通运输行业未来发展展望
- 沙尘暴的形成及防治
- 行政执法主办制度
- 2026年文学名著阅读理解试题
- AI在航空航天设备检测中的应用技术与实践
- 第03课 领会科学思维(复习课件)(四川专用)2026年高考政治一轮复习
- 2026浙江温州市洞头人才发展有限公司招聘启事补充2人备考题库(营业员)附参考答案详解(完整版)
- 供应链管理廉洁诚信承诺书(3篇)
- (2025版)中国癫痫性猝死预防指南课件
- 专项1 代数推理题课件++2026年中考数学一轮专题复习(安徽)
- 2017年3月中国科学院考博英语真题
- DB37∕T 5123-2018 预拌混凝土及砂浆企业试验室管理规范
- 济南地铁笔试题目及答案
- 袜子玩偶课件
- 水闸门操作知识培训课件
- GB/T 12137-2025气瓶气密性试验方法
- 2025年四川省拟任县处级领导干部任职资格试题及参考答案
- 肺气肿课件教学课件
- 外研版七年级英语下Unit 1 The secrets of happiness 书面表达 (含范文)
评论
0/150
提交评论