欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    实验06异常的捕获和抛出.docx

    • 资源ID:5174820       资源大小:547.16KB        全文页数:8页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验06异常的捕获和抛出.docx

    实验6异常的捕获和抛出实验目的了解异常类的作用,掌握对异常的捕获和处理方式,了解包装类的作用和特点以及基 本数据类型与包装类的对应关系,掌握包装类的使用方法。实验要求1、理解系统异常处理的机制;2、创建自定义的异常类型;3、了解基本数据类型和包装类的对应关系;4、理解基本数据类型与包装类之间的区别和联系;5、掌握基本数据类型与包装类之间相互转换的方法。实验内容1、使用trycatc晤句处理异常1.1、异常类型匹配的处理方式(1) 程序功能:在程序中主动产生一个ArithmeticException类型被0除的异常, 并用catch语句捕获这个异常。最后通过ArithmeticException类的对象e的方 法getMessage给出异常的具体类型并显示出来。(2) 程序源代码如下。public class EXP5_1public static void main(String arg3) System.out.println(这是一个异常处理的例子n");try int i=10;i /=0;catch (ArithmeticException e) System.out.println(异常是:"+e.getMessage();finally System.out.println("finally语句被执行");(3)编译并运行,结果如图5.1所示。图5.11.2、异常类型不匹配的处理方式(1) 程序源代码如下。public class EXP5_2public static void main(String args) System.out.println“这是一个异常处理的例子n” );try int i=10;i /=0;catch (IndexOutOfBoundsException e) System.out.println(异常是:"+e.getMessage();finally System.out.println("finally语句被执行");(2) 编译并运行,结果如图5.2所示。图5.2因为EXP5_2程序试图捕获一个异常类为IndexOutOfBoundsException的异常, 但发生的异常却是ArithmeticException类,所以,程序可以通过编译但在运行时, 系统会给出异常报告:报告所发生的但没有被捕获的异常。不过在此之前,其它语句 和finally语句将会被执行。1.3、包含多个catch子句的异常处理方式(1) 程序功能:在try子句中设计两个可能出现的异常,当a为0时会发生异常。另外一个是肯定的异常,因为数组c的长度为1,定义c42是为法的。通过两个 catch子句分别来捕获异常。(2) 程序源代码如下。public class EXP5_3public static void main(String args) try int a=args.length;System.out.println("na = "+a);int b=42/a;int c = 1;c42=99;catch (ArithmeticException e) System.out.println(发生了被 0 除:+e);catch (ArrayIndexOutOfBoundsException e) System.out.println(数组下标越界:"+e);(3)编译并运行,结果如图5.3所示。图5.32、使用throw语句抛出异常在上面的实验中,可以发现,异常对象是Java运行时由系统抛出的。抛出异常 也可以通过使用throw语句实现。throw是Java语言的关键字,用来告知编译器此 处要发生一个异常。throw后面要跟一个新创建的异常类对象,用于指出异常的名称 和类型。(1) 程序源代码如下。public class EXP5_4 static void throwProcess() try throw new NullPointerException 空指针异常');catch (NullPointerException e) System.out.println("|fcthrowProcess方法中捕获'+e.getMessage();throw e;public static void main(String args) try throwProcess();catch (NullPointerException e) System.out.println(再次捕获:+e);(2) 编译并运行,结果如图5.4所示。图5.43、使用throws语句throws子句一般用来表明在使用该方法时可能抛出异常但不捕获的异常。异常 由系统来处理。throws子句也可以指出抛出异常是RuntimeException或自定义异常 类,即异常的类型,以便准备调用其它方法捕获它,这种情况一般需要两个方法来分 别处理抛出异常和处理异常。(1) 程序功能:在这个程序中的mathod方法中使用throws子句抛出异常,在main 方法中捕获处理异常。(2) 程序源代码如下。import java.io.*;public class EXP5_5static void mathod() throws IllegalAccessException System.out.println("n在 mathod 中抛出一个异常);throw new IllegalAccessException。;public static void main(String args) try mathod();catch (IllegalAccessException e) System.out.println(在 main 中捕获异常:"+e);(3) 编译并运行,结果如图5.5所示。图5.54、使用finally子句当一个异常被抛出时,程序的执行流程就不再是连续的了,会跳过某些语句,甚 至会由于没有与之匹配的catch子句而过早地返回,结束程序的运行。为了确保一段 代码不管发生什么异常都能被执行,可以使用finally子句。每个try语句至少都要 有一个与之相配的catch或finally子句。从一个方法中返回到调用它的另外一个方法,可以通过return语句或通过一个 没有被捕获的异常,但finally子句总是在返回前被执行。程序功能:在类EXP5_6的mathodA方法中使用try子句捕获异常,使用 finally子句处理异常。(2)程序源代码如下。class EXP5_6static void mathodA() try System.out.println("nmathodA抛 出一个异常');throw new RuntimeException();finally System.out.println(执彳亍 mathodA 的 finally");static void mathodB() trySystem.out.println("mathodB正常返回");return;finally System.out.println(执彳亍 mathodB 的 finally");public static void main(String args) try mathodA(); catch (Exception e) mathodB();(3)编译并运行,结果如图5.6所示。图5.65、创建自定义的异常类(1) 程序功能:通过继承Exception异常类创建一个自定义异常类MyException,然 后再创建一个主类EXP5_7使用自定义异常类MyException。(2) 程序源代码如下。class MyException extends Exception private int x;MyException(int a) x=a;public String toString() return "自定义异常 MyException"public class EXP5_7 static void mathod(int a) throws MyException System.out.println("t 此处引用 mathod ("+a+")”);if (a>10) throw new MyException(a); /主动抛 出MyExceptionSystem.out.println(正常返回");public static void main(String args) try System.out.println(n进入监控区,执行可能发生异常的程序段;mathod(8);mathod(20);mathod(6);catch (MyException e) System.out.println(t程序发生异常并在此处进行处理);System.out.println("t发生的异常为:"+e.toString();System.out.println(这里可执行其它代码);(3)编译并运行,结果如图5.7所示。图5.7

    注意事项

    本文(实验06异常的捕获和抛出.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开