电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

面向对象程序设计-java语言07

  • 资源ID:48883993       资源大小:250.50KB        全文页数:51页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

面向对象程序设计-java语言07

第7章 异常处理编写程序,出现错误是不可避免的,如何 处理错误,由谁来处理错误,如何从错误 中恢复?这些问题是每种语言都要面对的 问题。 Java语言认为那些可预料和不可预 料的出错称为异常(Exception) 本章主要内容7.1 异常概述 7.2 异常类型 7.3 抛出异常 7.4 捕捉并处理异常 7.1 异常概述首先通过两个例子来了解什么是 异常? 【例7.1】异常示例1。 【例7.2】异常示例2。 通过这两个例子,可以对异常下 个定义:异常是在程序编译或运 行中所发生的可预料或不可预料 的异常事件,它会引起程序的中 断,影响程序正常运行。出现在 编译阶段的异常,称之为编译时 异常,如例7.1中的异常,出现在 运行阶段的异常,称之为运行时 异常,如例7.2中的异常。编译时异常一般由Java语言本身 指出,计算机能自动帮助处理, 不需要编程者单独处理;而运行 时异常则从程序本身很难直观看 出来,计算机也很难自动帮助处 理,因此在编写程序时应有预先 的声明,做出相应的处理,减少 程序中断的可能,减少排除异常 的困难。一般运行时异常的排错比编译时异 常的排错要困难得多,初学编程者 要注意这方面的经验。本章所讲述 的异常都是指运行时异常。 程序中有许多类型的错误会导致异 常发生,从严重的硬件故障(如硬 盘坏了)到简单的程序出错(数组 越界,数据溢出)。 在Java语言中,异常机制是:一 旦出现异常,可以由运行的方法 或虚拟机生成一个异常对象,它 包含异常事件的类型以及发生异 常时程序的状态等信息。异常对 象从产生和被传递提交给Java运 行系统的过程称为抛出(throw) 异常。 在Java运行时,如获得一个异常 对象,它会自动寻找处理该异常 的代码,它从生成异常对象的代 码构件开始,沿着方法调用栈, 按层回溯寻找,直至找到处理该 类异常方法为止,再由Java运行 系统将该异常对象交给该方法去 处理,这一个过程称为捕获( catch)异常。 Java语言能按机制来接收并处理异常 ,要求所指异常对象必须是已定义好 的异常类的实例。Java语言中的类库 ,已定义了许多可利用的异常类。异 常对象用new来创建,一旦创建后, 就停止当前的执行路径,再从当前环 境中释放异常对象的地址,此时异常 机制就接管一切,把程序转向异常处 理器,去裁定程序是否能继续进行还 是报错。 7.2 异常类型根据异常的来源,可以把异常分为两种类型: 系统定义的运行异常和用户自定义的异常。系统定义的运行异常 Java中定义了很多异常类,每个异常 类都代表了一种运行错误,类中包含 了该运行错误的信息和处理错误的方 法等内容。 每当Java程序运行过程中发生一个可 识别的运行错误时,即该错误有一个 异常类与之相对应时,系统都会产生 一个相应的该异常类的对象,即产生 一个异常。一旦一个异常对象产生了 ,系统中就一定有相应的机制来处理 它,确保不会产生死机、死循环或其 他对操作系统的损害,从而保证了整 个程序运行的安全性。 Java的异常类是处理运行时错误 的特殊类,每一种异常类对应一 种特定的运行错误。所有的Java 异常类都是系统类库中的 Exception类的子类。其类继承结 构如图7-1所示。 IllegalAccessExceptionClass NotFoundExceptionInterruptidExceptio nIOExceptionError类AWTExceptionException类RuntimeExceptionThrowable类Exception类从父类Throwable那里还 继承了若干方法,其中常用的方法 如下。 (1)public String toString () toString ()方法返回描述当前 Exception类信息的字符串。 (2)public void printStackTrace ()printStackTrace ()方法没有返回值 ,它的功能是完成一个打印操作 ,在当前的标准输出(一般就是 屏幕)上打印输出当前异常对象 的堆栈使用轨迹,也即程序先后 调用执行了哪些对象或类的哪些 方法,使得运行过程中产生了这 个异常对象。Exception类有若干子类,每一个子类代 表了一种特定的运行时错误。这些子类 有些是系统事先定义好并包含在Java类 库中的,称为系统定义的运行异常。 系统定义的运行异常通常对应着系统运 行错误。由于这种错误可能导致操作系 统错误甚至是整个系统的瘫痪,所以需 要定义异常类来特别处理。表7-1中列出 了若干常见的系统定义异常。 系统定义的运行异常异常对应的系统运行错误ClassNotFoundException未找到欲装载使用的类ArrayIndexOutOfBoundsException数组越界使用NegativeArraySizeException定义数组大小为负数FileNotFoundException未找到指定的文件或目录IOException输入、输出错误表7-1 系统定义的运行异常NullPointerExcepti on引用空的尚无内存空间的对 象ArithmeticExceptio n算术错误 ,如除数为0InterruptedExcepti on线程在睡眠、等待或因其他 原因暂停时被其他线程打 断 UnknownHostExce ption无法确定主机的IP地址SecurityException安全性错误,如Applet欲读 写文件MalformedURLExc eptionURL格式错误由于定义了相应的异常,Java程 序即使产生一些致命的错误,如 引用空对象等,系统也会自动产 生一个对应的异常对象来处理和 控制这个错误,避免其蔓延或产 生更大的问题。 用户自定义的异常 系统定义的异常主要用来处理系统 可以预见的较常见的运行错误,对 于某个应用所特有的运行错误,则 需要编程人员根据程序的特殊逻辑 在用户程序里自己创建用户自定义 的异常类和异常对象。这种用户自 定义异常主要用来处理用户程序中 特定的逻辑运行错误。用户自定义异常用来处理程序中 可能产生的逻辑错误,使得这种 错误能够被系统及时识别并处理 ,而不致扩散产生更大的影响, 从而使用户程序更为强健,有更 好的容错性能,并使整个系统更 加安全稳定。创建用户自定义异常时,一般需要完 成如下的工作: (1)声明一个新的异常类,使之以 Exception类或其他某个已经存在的系 统异常类或用户异常类为父类。 (2)为新的异常类定义属性和方法, 或重载父类的属性和方法,使这些属 性和方法能够体现该类所对应的错误 的信息。例如,定义一个处理除数为0异常类,该 类能够更详细地描述错误发生的原因: class MyException extends ArithmeticException public MyException(String str)super(“这是自定义的专门处理除数为0 的类,被除数“+str+“不能为0“); 7.3 抛出异常Java程序在运行时如果引发了一个可识别 的错误,就会产生一个与该错误相对应的 异常类的对象,这个过程被称为异常的抛 出。它分为由系统自动抛出异常、通过 throw抛出异常以及通过throws抛出异常三 种情况。 系统自动抛出异常所有系统定义的运行异常都可以 由系统自动抛出。下面的例7.3程 序将测试数组下标越界时出现的 异常。通过这个例子可以了解如 何使用系统定义的运行异常。 【例7.3】系统自动抛出异常。 注意:系统采用默认处理方式显示的异 常信息和printStackTrace()方法显 示异常信息一样,将异常类型及 出现异常的位置全部追踪显示出 来。利用throw语句抛出异常 系统定义的异常既可以自动抛出,也可 以由throw语句抛出,而用户程序自定义 的异常不可能依靠系统自动抛出,而必 须借助于throw语句来定义何种情况算是 产生了此种异常对应的错误,并应该抛 出这个异常类的新对象。用throw语句抛 出异常对象的语法格式为: throw exceptionObject;【例7.4】利用throw语句抛出系统 定义的异常。 注意:一般这种抛出异常的语句应该被定 义为在满足一定条件时执行,例如 把throw语句放在if语句的if分支中 ,只有当if条件得到满足,即用户 定义的逻辑错误发生时才执行。利用throws语句抛出异常在有些情况下,不需要一个方法 本身来处理异常,而是希望把异 常向上移交给调用这个方法的方 法来处理,在这种情况下则需要 通过throws语句来实现。Throws语 句的格式如下:修饰符 返回类型 方法名 ( 参数列表 ) throws 异常类名列表 throw 异常类名; 注意:含有throw语句的方法,应该在方法 头定义中增加如下部分: throws 异常类名列表这样做主要是为了通知所有欲调 用此方法的方法。由于该方法包 含throw语句,所以要准备接受和 处理它在运行过程中可能会抛出 的异常。如果方法中的throw语句 不止一个,方法头的异常类名列 表也不止一个,则语句中应该包 含所有可能产生的异常。7.4 捕捉并处理异常当程序运行发生异常时,首先要抛出异常,抛出的异 常被捕捉到后,才能对异常进行相应处理。 在大多数情况下,系统预设的异常处理方法只会输出 一些简单的信息到显示器上,然后结束程序的执行, 如前面所有的异常处理示例程序。这样的处理方式在 许多情况下并不能满足我们的要求。Java语言为我们 提供了try.catch语句和try.catch.finally语句捕捉并 处理异常,它们能够明确地捕捉某种类型的异常,并 按我们的要求加以适当的处理,这才是发挥异常处理 机制的最佳方式。 利用try.catch语句捕捉并处理异常 1try.catch语句格式 try statements catch (ExceptionType1 ExceptionObject) Exception Handling catch(ExceptionType2 ExceptionObject) Exception Handling catch(ExceptionType n ExceptionObject) Exception Handling 语句的程序框图如图7-2所示。有异常try执行catch无异常一个try块后面可能会跟着若干个 catch块,每个catch块都有一个异常 类名作为参数。当try块抛出一个异 常时,程序的流程首先转向第一个 catch块,并审查当前异常对象可否 为这个catch块所接收。一个异常对 象能否被一个catch语句块所接收, 主要看该异常对象与catch块的异常 参数的匹配情况。 当它们满足下面3个条件的任何一个 时,异常对象将被接收。 (1)异常对象与参数属于相同的异常 类。 (2)异常对象属于参数异常类的子类 。 (3)异常对象实现了参数所定义的接 口。如果try语句块产生的异常对象被 第一个catch块所接收,则程序的 流程将直接跳转到这个catch语句 块中,catch语句块执行完毕后就 退出当前方法,try块中尚未执行 的语句和其他的catch块将被忽略 。如果try语句块产生的异常对象与第 一个catch块不匹配,系统将自动转 到第二个catch块进行匹配,如果第 二个仍不匹配,就转向第三个 直到找到一个可以接收该异常对象 的catch块,即完成流程的跳转。 如果所有的catch块都不能与当前的 异常对象匹配,则说明当前方法不 能处理这个异常对象,程序流程将返回到调用该方法的上层 方法。如果这个上层方法中定义了与 所产生的异常对象相匹配的catch块, 流程就跳转到这个catch块中;否则继 续回溯更上层的方法。如果所有的方 法中都找不到合适的catch块,则由 Java运行系统来处

注意事项

本文(面向对象程序设计-java语言07)为本站会员(第***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.