实验五---异常处理_第1页
实验五---异常处理_第2页
实验五---异常处理_第3页
实验五---异常处理_第4页
实验五---异常处理_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、。实验五异常处理一、实验目的1. 学会利用 Try-catch-finally语句来捕获和处理异常;2. 掌握自定义异常类的方法。二、实验要求1. 通过编程理解系统异常处理的机制和创建自定义异常的方法。2. 掌握基础类。三、实验内容(一 )异 常处 理机 制1. 编写使用try catch语句处理异常的程序文件Demo4_1.java,源代码如下:public class Demo3_1public static void main(String arg3) System.out.println(这是一个异常处理的例子n);try int i=10;i /=0;catch (Arithmeti

2、cException e) System.out.println(异常是: +e.getMessage();-可编辑修改 -。finally System.out.println(finally语句被执行 );编译并运行程序。注意:如果在catch语句中声明的异常类是Exception, catch语句也能正确地捕获,这是因为Exception是 ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。2 、源文件是Demo3_2.java。要捕捉的异常是除数为零和数组下标越界。通过

3、修改a 和 c 下标值体验程序。public class Demo3_2 public static void main (String args)int a, b;int c=1,2,3;try a=10;b=100/a;System.out.println( 当前 a 值:+a);c2=200;System.out.println( 当前数组长 :+c.length);-可编辑修改 -。catch(ArithmeticException e)System.out.println (除零错误 :+e);catch(ArrayIndexOutOfBoundsException e)System

4、.out.println (数组下标越界 :+e); finallySystem.out.println (我是 finally);System.out.println (我能被正常执行到);【思考】 先运行上面程序,观察运行结果。 按下条件分别修改数据,编译后运行,观察输出结果,分析在try catch块里那些语句没有被执行,为什么 ? 块外那些语句可被执行到,为什么?修改 a=0 , 保持 c2=200;保持 a=10 ,修改 c3=200,修改 a=0 , 修改 c3=200; 再添加一个 catchException e ,位置在最前面,观察编译信息,说明什么?3 、编写 Demo3_

5、3.java程序,计算两数相除并输出结果。使用两个catch 子句,分别捕捉除数为0 的异常和参数输入有误异常。源代码如下:importjava.io.*;classDemo3_3publicstaticvoidmain(Stringargs ) -可编辑修改 -。try BufferedReaderstrin= newBufferedReader (newInputStreamReader(System .in );System . out .print(请输入除数: );Stringcl=strin .readLine();inta=Integer .parseInt(cl);System

6、 . out .print( 请输入被除数: );cl=strin .readLine();intb=Integer .parseInt(cl);intc=b/a;System . out .println(商为: +c);catch (NumberFormatExceptione)System . out .println(请输入整数! );/e .printStackTrace();/ 捕获除数为 0 的异常catch (ArithmeticExceptione)System . out .println(除数不可以 0 ! );/e .printstackTrace();/ 捕获与 I/

7、O 有关的异常catch (IOExceptione)e.printStackTrace();/ 捕获数值转化时的异常,如不能将字符转化成数值-可编辑修改 -。编译并运行,当输入除数为0 时,将有异常出现,当输入的不是整数时,如将30 输成了 3o ,出现的是另一种异常。(二 )自 定义 异常 类4 、注意 throw 、 throws的使用。源文件是Demo3_4.java。package sy3;class MyException extends Exceptionpublic String toString()return 除数等于零 ;class DIVdouble div(doubl

8、e x,double y) throws MyExceptionif(y=0) throw new MyException();else return (x/y);public class Demo3_4public static void main (String args) double z;-可编辑修改 -。DIV d=new DIV();tryz=d.div(100,0);System.out.println( 当前 z 值 :+z);catch(MyException e)System.out.println (e.toString();【思考】修改 try.catch中语句 z=d

9、iv.DIV(100,0)入口参数,观察运行结果。z=d.div(100,10);z=d.div(100,0);将 try.catch语句注释掉,观察编译信息。上面条件保持, 在 main函数后面加上throws MyException再重新编译, 能否通过?然后运行观察结果,得到什么结论?2 编写程序Demo3_5.java,包含自定义异常,当输入数值为13 和 4 时抛出该异常。源代码如下:class Ex3_5 extendsExceptionEx3_5 (String msg)super (msg);-可编辑修改 -。class Demo3_5privateintx;voidsetX(

10、 int x) this .x=x;voidf1() throwsEx3_5if (x=13)thrownewEx3_5(I dont like 13!);elseif (x=4)thrownewEx3_5(I dont like 4!);elseSystem . out .println(100/x);publicstaticvoidmain(String args ) Demo3_5 a=newDemo3_5();trya.setX(5);/a.setX(13);/a.setX(4);/a.setX(0);a.f1();catch (Ex3_5 e) -可编辑修改 -。System. ou

11、t .println(get message:+e.getMessage();【思考】编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX ( 13 )语句后,查看运行结果,当释放a.setX ( 4 )语句后,查看运行结果,当释放a.setX ( 0)语句后,查看运行结果。四、实验练习题1 、编写 Java 程序 ,创建数组后 ,对数组访问时发生的数组越界.实验使用try-catch语句处理该异常。运行结果如图所示。-可编辑修改 -。importjava.io.*;publicclassDemo3_6 publicstaticvoidmain(String arg3) try BufferedReaderstrin=newBufferedReader (newInputStreamReader(System .in);System. out .println(请输入创建数组的个数:n);Stringcl=strin.readLine();inta=Integer .parseInt (cl);System. out .println(数组创建完毕!您要查找那个元素?n);Stringc2=s

温馨提示

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

评论

0/150

提交评论