java编程基础4天课堂代码14-异常处理下_第1页
java编程基础4天课堂代码14-异常处理下_第2页
java编程基础4天课堂代码14-异常处理下_第3页
java编程基础4天课堂代码14-异常处理下_第4页
java编程基础4天课堂代码14-异常处理下_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

异常处理(下)单击此处编辑副标题样式版权声明华清远见教育集团;未经华清远见明确许可,不得为任何目的以任何形式复制或传播此文档的任何部分;本文档包含的信息如有更改,恕不另行通知;华清远见教育集团保留所有权利。目录抛出异常捕获异常和抛出异常的结合使用方法覆盖时的异常处理自定义异常printStackTrace()方法抛出异常可以对下列情形在方法定义中抛出异常:方法中调用了一个会抛出“已检查异常”的方法程序运行过程中发生了错误,并且用throw子句抛出了一个“已检查异常”不要抛出如下异常:从Error中派生的那些异常从RuntimeException中派生的那些异常,如NullPointerException等Java异常调用栈机制如果一个异常没有在当前的try-catch模块中得到处理,则它会抛出到它的调用方法。如果一个异常回到了main()方法,仍没有得到处理,则程序会异常终止。throws方法中抛出异常的格式

<modifer><returnType>methodName([<argument_list>])throws<exception_list>{ //…… }throws示例1……publicvoidreadLyrics()throwsFileNotFoundException,IOException { FileInputStreamfis=newFileInputStream(“lzs.txt"); intb; b=fis.read(); while(b!=-1){ System.out.print((char)b); b=fis.read(); } fis.close(); }…….throws示例2……publicvoidreadLyrics()throwsFileNotFoundException,IOException{ Filef=newFile(“lzs.txt"); if(!f.exists()){

thrownewFileNotFoundException("Filecan'tbefound!"); } FileInputStreamfis=newFileInputStream(f); intb; b=fis.read(); while(b!=-1){ System.out.print((char)b); b=fis.read(); } fis.close(); }……捕获和抛出结合使用捕获异常和抛出异常的方式,并不是排它的,它们可以结合起来使用:method()throwsXXXException{ … try{…} catch(XXXExceptione){ …

throwe; }}方法覆盖中的异常当子类中的方法覆盖父类中的方法时,可以抛出异常覆盖方法抛出的异常,可以抛出与被覆盖方法的相同的异常或者被覆盖方法的异常的子类异常方法覆盖中的异常例子importjava.io.*;publicclassParent{publicvoidmethodA()throwsIOException,RuntimeException{//IO操作

}}--------------------------------------------------------------------------------importjava.io.*;publicclassChildextendsParent{publicvoidmethodA()throwsFileNotFoundException,UTFDataFormatException, ArithmeticException{//IO操作,数学运算

}}自定义异常类可以通过继承Exception或它的子类来实现自己的异常类一般而言,对于自定义的异常类,会设计两个构造器:一个默认的不带参数的构造器以及一个带参数的构造器,后者用于传递详细的出错信息。自定义异常类例子publicclassMyDivideExceptionextendsArithmeticException{ publicMyDivideException() { super(); } publicMyDivideException(Stringmsg) { super(msg); }

publicStringtoString() { return“除以零引起的异常!"; }}自定义异常类(con.)publicclassDivideExceptionTest{ publicstaticvoidmain(Stringargs[]){ intn=0,d=0; doubleq; try{ n=Integer.parseInt(args[0]); d=Integer.parseInt(args[1]); if(d==0)thrownewMyDivideException(); q=(double)n/d; System.out.println(n+"/"+d+"="+q); }catch(MyDivideExceptione){ System.out.println(e); } }}printStackTrace()方法利用Exception的printStackTrace()方法可以追踪异常出现的执行堆栈情况示例:publicclassTestPrintStackTrace{ publicstaticvoidmain(Stringargs[]){ try{ firstMethod(); }catch(SelfDefinedExceptione){ e.printStackTrace(); } } publicstaticvoidfirstMethod()throwsSelfDefinedException{ secondMethod(); } publicstaticvoidsecondMethod()throwsSelfDefinedException{ thirdMethod(); } publicstaticvoidthirdMethod()throwsSelfDefinedException{ thrownewSelfDefinedException(); } }

pu

温馨提示

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

评论

0/150

提交评论