《基于任务驱动模式的Java程序设计》课件第六章.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《基于任务驱动模式的Java程序设计》课件第六章.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于任务驱动模式的Java程序设计 基于 任务 驱动 模式 Java 程序设计 课件 第六
- 资源描述:
-
1、异 常 处 理一、异常和异常处理二、异常处理语句 三、创建用户自定义异常类第一节 异常和异常处理异常是程序运行过程中由于硬件设备问题或者软件设计缺陷而产生的不正常情况,如文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。它主要帮助我们在debug的过程中解决下面三个问题。什么出错?哪里出错?为什么出错?第一节 异常和异常处理异常和异常处理一、异常但是,并不是所有的错误都是异常,错误有时候是可以避免的。比如,代码少了一个分号,那么运行结果会提示java.lang.Error,表示出错;如果使用System.out.println(11/0)语句,那
2、么因为用0做了除数,系统会抛出java.lang.ArithmeticException的异常。有些异常需要作处理,有些则不需要。第一节 异常和异常处理异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。从学习编程开始,我们会有意或无意地使用if-else来控制异常,然而这种控制非常繁琐,如果多个地方出现同一个异常或者错误,那么每个地方都要作相同处理,感觉相当麻烦,因此很多编程语言设计了异常处理机制。第一节 异常和异常处理二、异常处理机制异常处理机制是指当异常产生时,为了让程序不中断而继续运行的机制。每种语言对于异常的处理可能会不一样,在Java中,异常处理机制包括Error和Ex
3、ception两个部分。它们都继承自一个共同的基类Throwable。第一节 异常和异常处理Error属于JVM运行中发生的一些错误,虽然并不属于开发人员的范畴,但是有些Error还是由代码引起的。比如,StackOverflowError经常由递归操作引起,这种错误一般无法挽救,只能依靠JVM。而Exception假设程序员会处理这些异常,比如数据库连接出了异常,那么我们可以处理这个异常,并且重新连接等。Exception分为两种,即检查类型(Checked)和非检查类型(Unchecked)。检查类型的异常是指程序员明确地声明或者用try-catch语句来处理的异常,而非检查类型的异常则没
4、有这些限制。第一节 异常和异常处理Java中的异常用对象来表示。Java对异常的处理是按异常分类进行的,不同异常有不同的分类,每种异常都对应一个类型(Class),每个异常都对应一个异常(类的)对象。异常类的来源有两个:一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。第一节 异常和异常处理三、Java中异常类和异常对象异常对象的来源有两个:一是Java运行时环境自动抛出系统生成的异常,而不管程序员是否愿意捕获和处理,它总要被抛出,比如
5、除数为0的异常;二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,该异常用来向调用者汇报异常的一些信息。第一节 异常和异常处理三、Java中异常类和异常对象Java异常类层次结构如图6.1所示。第一节 异常和异常处理Throwable类是Java语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过Java虚拟机或者Java throw语句抛出。类似,只有此类(或其子类之一)才可以是catch子句中的参数类型。两个子类的实例,Error和Exception通常用于指出发生了异常情况。这些实例一般是在异常
6、情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。第一节 异常和异常处理1.ThrowableException类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。第一节 异常和异常处理2ExceptionError是Throwable的子类,表示仅靠程序本身无法恢复的严重错误,用于指出合理的应用程序不应该试图捕获的严重问题。在执行该方法期间,无需在方法中通过throws声明可能抛出但没有捕获的 Error 的任何子类,因为Java编译器不去检查它。也就是说,当程序中可能出现这类异常时,即使没有用try-catch语句捕
7、获它,也没有用throws子句声明抛出它,编译也能通过。第一节 异常和异常处理3ErrorRuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类。Java编译器不去检查它。也就是说,当程序中可能出现这类异常时,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,编译也能通过。这种异常可以通过改进代码实现来避免。以上是对有关异常API的一个简单介绍,用法都很简单,关键在于了解异常处理的原理,具体用法参看Java API文档。第一节 异常和异常处理4RuntimeException在Java应用程序中,异常处理机制分为抛出异常和捕捉异常。抛出
8、异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。第一节 异常和异常处理四、异常捕获与处理捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(Exception Handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适的异常处理器时,
9、运行时系统终止。同时,意味着Java程序的终止。第一节 异常和异常处理Java的异常处理是通过5个关键字来实现的:try、catch、throw、throws和finally。其处理过程如图6.2所示。第一节 异常和异常处理1.异常处理的关键字try语句块中是要执行的代码,如果这段代码出现了异常,系统将会自动抛出(throws)一个异常,而catch后面有对应的异常,程序将进入对应的catch语句块;最后,不管是否有异常,程序将进入finally语句块进行缺省处理。第一节 异常和异常处理异常处理程序的基本形式如下:try/代码块catch(ExceptionType1 e)/处理Excepti
10、onType1类型的异常catch(ExceptionType2 e)第一节 异常和异常处理/处理ExceptionType2类型的异常throw(e);/再抛出ExceptionType2类型的异常finally /缺省处理代码注意:catch语句块可以存在多个,因为在程序运行的过程中,可能会发生多种异常,我们需要多个catch以提高程序的适应性。第一节 异常和异常处理异常类(Exception)的子类很多,大致分为有关I/O的IOException、有关运行时异常的RuntimeException和其他异常三类。(1)IOException:由于I/O系统堵塞等原因引起的异常,包括试图从文
11、件结尾处读取信息、试图打开一个不存在或者格式错误的URL。第一节 异常和异常处理2.异常的类型常见的IOException如下:FileNotFoundException:文件未找到异常。EOFException:读写文件尾异常。MalformedURLException:URL格式错误异常。SocketException:Socket异常。第一节 异常和异常处理(2)RuntimeException:由于程序编写过程中考虑不周全而引起的异常,包括错误的类型转换、数组越界访问、数字计算错误、试图访问一个空对象等。常见的RuntimeException如下:ArithmeticException
12、:数学计算异常。NullPointerException:空指针异常。NegativeArraySizeException:负数组长度异常。ArrayOutOfBoundsException:数组索引越界异常。ClassNotFoundException:类文件未找到异常。ClassCastException:造型异常。第一节 异常和异常处理(3)其他异常:包括用Class.forName()来初始化一个类,字符串参数或对应的类不存在等。常见的其他异常如下:ClassCastException:类型转换异常。ArrayStoreException:数组中包含不兼容的值抛出的异常。SQLExce
13、ption:操作数据库异常。NoSuchFieldException:字段未找到异常。NoSuchMethodException:方法未找到抛出的异常。NumberFormatException:字符串转换为数字抛出的异常。StringIndexOutOfBoundsException:字符串索引超出范围抛出的异常。IllegalAccessException:不允许访问某类异常。InstantiationException:当应用程序试图使用Class类中的newInstance()方法创建一个类的实例,而指定的类对象无法被实例化时,则抛出该异常。第一节 异常和异常处理一,try语句不能单独
展开阅读全文