文档详情

实验四 异常处理和包装类的编程练习方案.doc

发布:2016-12-29约4.75千字共9页下载文档
文本预览下载声明
实验四 异常处理和包装类的编程练习 实验目的 了解异常类的作用,掌握对异常的捕获和处理方式,了解包装类的作用和特点以及基本数据类型与包装类的对应关系,掌握包装类的使用方法。 实验要求 理解系统异常处理的机制; 创建自定义的异常类型; 了解基本数据类型和包装类的对应关系; 理解基本数据类型与包装类之间的区别和联系; 掌握基本数据类型与包装类之间相互转换的方法。 实验内容 使用try…catch语句处理异常 异常类型匹配的处理方式 程序功能:在程序中主动产生一个ArithmeticException 类型被0 除的异常, 并用catch 语句捕获这个异常。最后通过ArithmeticException 类的对象e 的方法getMessage 给出异常的具体类型并显示出来。 程序源代码如下。 public class EXP5_1{ public 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 语句被执行); } } } 编译并运行,结果如图5.1所示。 图 5.1 异常类型不匹配的处理方式 程序源代码如下。 public class EXP5_2{ public 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 语句被执行); } } } 编译并运行,结果如图5.2所示。 图 5.2 因为EXP5_2 程序试图捕获一个异常类为IndexOutOfBoundsException 的异常,但发生的异常却是ArithmeticException 类,所以,程序可以通过编译但在运行时,系统会给出异常报告:报告所发生的但没有被捕获的异常。不过在此之前,其它语句和finally 语句将会被执行。 包含多个catch子句的异常处理方式 程序功能::在try 子句中设计两个可能出现的异常,当a 为0 时会发生异常。另外一个是肯定的异常,因为数组c 的长度为1,定义c[42]是为法的。通过两个catch 子句分别来捕获异常。 程序源代码如下。 public class EXP5_3{ public static void main(String[] args) { try { int a=args.length; System.out.println(\na = +a); int b=42/a; int c[]={1}; c[42]=99; } catch (ArithmeticException e) { System.out.println(发生了被 0 除:+e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(数组下标越界:+e); } } } 编译并运行,结果如图5.3所示。 图 5.3 使用throw语句抛出异常 在上面的实验中,可以发现,异常对象是Java 运行时由系统抛出的。抛出异常也可以通过使用throw 语句实现。throw 是Java 语言的关键字,用来告知编译器此处要发生一个异常。throw 后面要跟一个新创建的异常类对象,用于指出异常的名称和类型。 程序源代码如下。 public class EXP5_4 { static void throwProcess() { try { throw new
显示全部
相似文档