版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
异常处理(下)单击此处编辑副标题样式版权声明华清远见教育集团;未经华清远见明确许可,不得为任何目的以任何形式复制或传播此文档的任何部分;本文档包含的信息如有更改,恕不另行通知;华清远见教育集团保留所有权利。目录抛出异常捕获异常和抛出异常的结合使用方法覆盖时的异常处理自定义异常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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中合作精神主题班会说课稿2025
- 2026中学教资教资有效期相关问题课件
- 高中2025年寓言合作说课稿
- 2026中学教资操行评定方法考点课件
- Q-SY 01065-2024 二氧化碳管道输送介质技术规范
- 广西梧州市2025年中石油职称政治理论水平考试模拟试题及答案
- 2026年高校教师资格证考试题库(附答案)
- 初中生情绪健康2025年认知重构说课稿
- 会展概论题库及答案高中
- 计算与方程题库及答案
- 上海市住宅物业管理规定实施细则
- 老年人能力评估师高级需求评估
- 2023非水反应型双组分聚氨酯灌浆材料
- 中小学计算机教室学生上机登记表
- 旅馆业突发事件应急处置预案
- 安全生产管理及人员名单
- 某钢厂热风炉炉体及框架结构安装施工方案
- 浮力实验说课课件
- GB/T 5269-2008传动与输送用双节距精密滚子链、附件和链轮
- GB/T 20145-2006灯和灯系统的光生物安全性
- GB/T 15596-2021塑料在玻璃过滤后太阳辐射、自然气候或实验室辐射源暴露后颜色和性能变化的测定
评论
0/150
提交评论