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

清华面向对象程序设计:第06章

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

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

清华面向对象程序设计:第06章

第6章,异常处理,6.1 异常概述,为了保证程序的正确执行,准确地检测到程序运 行过程中可能出现的各种异常,并进行有效地控制 是十分关键的。 传统异常处理: 1处理异常的代码量大 2影响程序的可读性 3缺乏异常处理的规范性,6.1.1 异常的概念 影响程序正常运行的主要原因来自两个方面: 一方面是运行程序的系统出现了异常。例如,系统 软、硬件发生的故障,资源短缺等;另一方面是程 序本身存在的问题。例如,语法错误、逻辑错误和 运行错误等。 在Java语言中,所说的异常是指那些影响程序 正常运行的错误,而并不包含导致程序运行结果不 正确的那些逻辑错误。,6.1.2 Java语言中的异常类 在Java语言中,对很多可能出现的异常进行了 标准化,并将它们封装成了各种各样的类,我们将 统称为异常类。一旦在程序运行过程中发生异常, Java虚拟机就会自动地创建一个相应的异常类对 象,并将该对象作为参数抛给处理异常的方法。在 这些异常类中,主要包含了有关异常的属性信息, 跟踪信息等。,JAVA异常类结构,Exception类 Exception类标识的异常通常是由应用程序本身 所致的,因此,一旦出现这些异常,应用程序需要 做出必要的反映。Exception中包含两个比较重要 的子类,一个是IOException类,它包含了有关输 入输出的异常;另外一个是RuntimeException,它 又包含了很多子类,这些子类分别标识了程序运行 期间可能出现的各种异常错误。,java.lang的RuntimeException类的异常子类,6.2 异常处理机制,Java程序中,处理异常要经历三个主要阶段:抛出异常,捕获异常和处理异常。当一个异常被抛出并捕获后,既可以就地自行处理,也可以调用相应异常类的成员方法加以处理,还可以抛给调用该方法的成员方法处理。,6.2.1 抛出异常 所谓抛出异常是指在程序的运行过程中,一旦发生了一个可识别的错误,就立即创建一个与该错误相对应的异常类对象,将其作为参数抛给处理该异常的代码块。如果产生的异常是系统可标识的标准异常,则抛出异常的工作就由系统自动地完成;如果产生的异常是用户自定义的异常,就需要应用程序自行地创建异常类对象,并借助throw语句将其抛出。,6.2.2 捕获异常 在Java程序中,捕获异常用try-catch-finally语句实现,该语句可以被用来捕获一个或多个异常,基本语法格式为: try Java statements catch (ExceptionType1 ExceptionObject) handler for this exception type catch (ExceptionType2 ExceptionObject) handler for this exception type .,简单的例子 public class TestTryCatch /测试异常捕获类 public static void main(String args) int i=1; int j=0; try /捕获异常语句 System.out.println(“Try block entered “+“i= “+i+“ j= “+j); System.out.println(i/j); /产生ArithmeticException异常 System.out.println(“Ending try block“); catch(ArithmeticException e) System.out.println(“Arithmetic exception caught“); System.out.println(“After try block“); ,为了更好地控制程序的执行过程,使得程序能够在任何情 况下都具有统一的结束方式,可以在try语句块的最后一个 catch子句之后增加一个finally子句,其基本的语法格式 为: try Java statements catch (ExceptionType1 ExceptionObject) handler for this exception type catch (ExceptionType2 ExceptionObject) handler for this exception type . finally handler for finally ,如果在一个try语句块中有可能发生多种不同类 型的异常,就需要在try之后放置多个catch子句。 try System.out.println(“nFirst try block in divide() entered“); arrayindex+2=arrayindex/arrayindex+1; System.out.println(“Code at end of first try block in divide()“); catch (ArithmeticException e) System.out.println(“Arithmetic exception caught in divide()“); catch (ArrayIndexOutOfBoundsException e) System.out.println(“Index-out-of-bounds exception caught“ finally System.out.println(“finally block in divide()“); ,捕获异常的基本过程 在一个方法中,对于没有捕获到的那些标准异常,系统将会把它们抛 向调用这个方法的方法中去,并且这个过程会不断地向上层方法延伸,6.2.3 处理异常 在Java语言中,处理异常主要有两种方式: 在产生异常的方法中处理异常 try-catch-finally语句 将异常抛给调用该方法的代码段 Throws语句,嵌套的try语句 如果try语句相互嵌套,内层没有捕获到的异常将由外层 捕获。,用thows抛出异常 如果发生异常的方法不清楚具体应该如何处理这 个异常,就可以将其抛出,由调用该方法的方法进 行捕获和处理,或将其继续向上传递,直到某个方 法将其捕获到为止。 Modifiers ResultType MethodName(ParameterList) throws exceptions MethodBody thows关键字后面列出的是该方法可能抛出的所 有异常类名,每个异常类之间用逗号隔开。,异常抛出的简单例子 public class ThrowsException public static void main( String args) try Method( 0 ); Method( 1 ); catch(NumberFormatException e ) System.out.println(“t捕获异常:“+e); catch( ArrayIndexOutOfBoundsException e ) System.out.println(“t捕获异常:“+e); ,finally System.out.println(“在任何状态下,finally 语句块都将被执行。”); static void Method( int i ) throws ArithmeticException,NumberFormatException System.out.println(“调用方法Method(“+i+“)“); if ( i=0 ) System.out.println(“t没有发生异常事件。”); else if( i=1 ) String str = “xyz“; int c=Integer.parseInt(str); ,6.2.4 用户自定义异常类 为了更加方便应用程序捕获和处理异常,Java语言将很多异常进行了标准化,并组成了类层次结构。不仅如此,它还为用户提供了自定义异常类的能力,使得用户可以根据自己的需求,定义符合自己需求的异常类。,Throwable类 Java语言要求,任何异常类都必须是Throwable 类的子类,Throwable是所有异常类的公共父类。 Throwable类中主要包含了由构造方法初始化的 异常描述性信息和创建异常对象时堆栈的记录情 况,它记载了调用每个成员方法的全部过程。 如果希望访问这些内容,可以通过Throwable类 中的public成员方法实现。,Throwable类的public成员方法,定义异常类 除了异常类必须是Throwable类的子类之外,建 议最好将定义的异常类作为Exception的子类,这 样Java编译器才能跟踪程序中抛出的异常位置。 定义异常类的基本格式: class TestException extends Exception TestException()super(); TestException(String s) super(s); ,应用自定义的异常类 /filename:Test.java public class Test public static void main(String args) for (int i=0;iargs.length;i+) try thrower(argsi); System.out.println(“Test“+argsi+“ didn't throw an exception“); catch(Exception e) System.out.println(“Test“+argsi+“ threw a “ +e.getClass()+“n with message:“+e.getMessage(); ,static int thrower(String s) throws TestException try if (s.equals(“divide“) int i=0; return i/i; if (s.equals(“null“) s=null; return s.length(); if (s.equals(“test“) throw new TestException(“Test message“); finally System.out.println(“thrower(“+s+“)done“); /end of class Test,thrower(“divide“)done Test“divide“ threw a class java.lang.ArithmeticException with message:/ by zero thrower(“null“)done Test“null“ threw a classs java.lang.NullPointerException with message:null thrower(“not“)done Test“not“ didn't throw an exception thrower(“test“)done Test“test“ threw a class TestException with message:Test message,运行这个程序后,应该得下面所示的结果:,

注意事项

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

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




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