【精品】实验四异常类的定义及处理_第1页
【精品】实验四异常类的定义及处理_第2页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、信息科学与工程学院?Java程序设计?上机实验报告专业班级 姓 名 学 号_实验时间年 月 日 指导教师 成 绩实验名称实验四异常类的定义及处理实验 目的1了解异常处理方法。2熟悉并掌握常见异常的捕获方法。3熟悉JDK中已经定义的假设干异常类的层次结构。4掌握自定义异常类的创立方法。主要实验记录及个人小结包括局部实验源程序、调试结果及实验结果分析等一.实验内容1.编写程序实现如下功能:生成并捕获到NegativeArraySizeException和In dexOutOfBou ndsException 类型的异常,并显示捕获到的异常信息。然后在此根底上生成并捕获到NullPoi nterEx

2、ception类型的异常,并显示捕获到的异常信息。(1).源程序public class TestExcepti onpublic static void main(String args)outofBo un d();arraySize();n ullPoi nter();static void arraySize()tryint p=-5;int test1-new intp; /不一疋要是-5,只要小于0的就能捕获到无效数组长异常catch (NegativeArraySizeExcepti on e)System.out.pri ntl n(捕获异常:n +e);System.out.

3、pri ntl n(e.toStri ng(); /把捕获的错误异常转变为子符串类型,prin tl n()方法,用以输入。fin allySystem.out.println(捕获完成 n);static void n ullPoi nter()主要实验记录及个人小结包括局部实验源程序、调试结果及实验结果分析等tryint test3=null;test31=100; / 空指针无法赋值catch (NullPointerException e)System.out.println(捕获异常:n+e);System.out.println(e.toString();finallySystem

4、.out.println( 捕获完成 nn);(2).实验结果G : XjaLva Xexp4xpi jamna TstExc e pt ion播获异常;Lang Arra I ndcxOutOf Boun ds Exes pt ion : 180Java - Lnsr lArrivI ndexutOfBoundsExcc pt ion = 106苹获完成获异常:j avs . Lang .Nega.t iueft12e Except io nJ-aua_ linq -NegaLt iueAriasiS iz&Except ion获异常:j.aua_ Lang _NulLPo intei?Ej

5、ccept ionJava. Lanf NuUPointei-EDcception蕭获完成步骤(6):将outofBound()方法中捕获异常的语句注释掉,重新编译程序实验结果:G:xjavaXexp4Xiljavac TestException_jauaG:Xj*vaexp4p丄?jdv曰 Te&tExcepCion 捕获完成Exce pt ion in thread main java. lamg. Atrai/l ndexOutOf BoundsExcep ion - 100 at TestExcept ion.outofBoundCTestExcept ion.jaua = 32 at

6、 TestExcept ion.mainCTestExcept ion Bjava:5编译通过,运行时出现错误主要实验记录及个人小结包括局部实验源程序、调试结果及实验结果分析等步骤(7):将array万法重新定义为如下形式:void arraySize() throws NegativeArraySizeExcepti on然后修改arraySize 方法中捕获 NegativeArraySizeException异常的语句执行局部。源程序:public class TestExcepti onpublic static void main(String args)tryoutofBo un

7、d();arraySize();n ullPoi nter();catch(NegativeArraySizeExcepti on e)System.out.pri ntl n( e.toStri ng();static void arraySize()tryint p=-5;int test1=new in tp; /不一 -定要是 -5,只要小于0的就能捕获到无效数组长度的异常catch (NegativeArraySizeExcepti on e)System.out.pri ntl n(捕获异常:n +e);System.out.println(e.toString();/把捕获的错误

8、异常转变为字符串类型,传给println() 方法,用以输入。Fi nallySystem.out.println(捕获完成 n);static void outofBo un d()tryint test2=new int10;test2100=1;/超出数组长度catch (Array In dexOutOfB oun dsExceptio n e) System.out.pri ntl n(捕获异常:n +e);System.out.pri ntl n( e.toStri ng();fin allySystem.out.println(捕获完成 nn); static void n ul

9、lPo in ter()try int test3=null;test31=100; / 空指针无法赋值catch (NullPo in terExcepti on e)System.out.pri ntl n(捕获异常:n+e);System.out.pri ntl n( e.toStri ng();fin allySystem.out.println(捕获完成 nn);实验结果:K :aexp4p2 jExcept ion lnsrnd&xOwtOfion =10Qioe晞菽异常;|java long ftrraylnIcxQutOf BoundsExcepcion:膚获完成获异常:Lja

10、ua . lang . HeiueftrraySizeExeept ion.lang-, HeLue ArraysiseExcept ion完去萌茯异常:.J-aua . 1我ng . NuLlPc intepException java.lang,NullFo in tepExce pt ion 捕获完成2.编写程序实现如下功能:计算两个数之和,参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时,抛出自己的异常。(1)源程序public class SelfExcepti on public static void selfExcepti on Test(i nt a,i

11、 nt b) throws NumberRa ngeExcepti on int an swer;if( a10 & b 10 & bjaua e If Except ion辅入数值超岀菠围,应该为-测之间的整数G; Xjauajexp4p33.思考题(1)翻译以下常用异常类的描述信息OutOfMemoryErrorA class in sta nee creatio n expressi on, array creati on expressi on , or stri ng con cate nati on operatior expressi on throws an OutOfMemo

12、ryError if there is in sufficie nt memory available.翻译: 内存溢出错误 如果没有足够的内存空间,一个类的实例创立的表达式,数组创立的表达式,或者一个字符串连接符表达式抛出一个内存溢出的错误NegativeArraySizeExcepti onAn array creati on expressi on throws a NegativeArraySizeExcepti on if the valueof any dime nsion expressi on is less tha n zero.翻译:创立大小为负的数组的异常任何维度表达式的

13、值小于零,那么数组创立的表达式抛出一个创立大小为负的数组的异常NullPoi nterExceptio nAfield access throwsa NullPointerException if the value of the objectreferenceexpressi on is n ull.Amethod invocationexpression that invokes an instaneemethodthrowsaNullPointerException if the target reference is null.An array access throws a Null

14、PointerException if the value of the array reference expressi on is n ull.翻译: 空指针异常 如果对象引用表达式的值是空的,一个字段的访问抛出一个空指针异常。 如果是空的目标参考,一个方法调用表达式调用一个实例方法抛出一个空指针异常,。如果数组引用表达式的值是空,数组访问抛出一个空指针异常。Arrayl ndexOutOfB oun dsExceptio nAn array access throws an Array In dexOutOfB oun dsExcepti onif the value of the ar

15、rayindex expression is negative or greater than or equal to the length of the array.翻译: 用非法索引访问数组时抛出的异常 异常数组访问抛出一个用非法索引访问数组时抛出的异常,如果数组索引表达式的值是负或大于等于数组的长度。ClassCastExcepti onThrow n to in dicate that the code has attempted to cast an object to a subclassof which itis not an in sta nce. For example, t

16、he followi ng code gen eratesaClassCastExcepti on:Object x = new In teger(O); System.out.pri ntl n( (Stri ng)x);翻译:强制类型转换错误异常异常抛出,以指示代码试图将对象转换为一个子类,它不是一个实例。例如,以下代码将生成一个ClassCastException :对象x =新的整数(0); 输出(字符串)X);ArithmeticExceptio nThrow n whe n an exceptio nal arithmetic con diti on has occurred. F

17、or example,an in teger divide by zero throws an in sta nce of this class.翻译:算数异常当发生了一个特殊的算术条件时抛出。例如,一个整数“除以零抛出这个类的一个实例。ArrayStoreExcepti onAn assig nment to an array comp onent of reference type throws an ArrayStoreExcepti on whe n the value to be assig ned is not compatible with the comp onent type

18、 of the array.翻译:数组存储异常分配一个引用类型的数组组件时,将抛出一个数组存储异常,要分配的值与数组的类型不兼容。NoSuchFieldExcepti onSign als that the class does nt have a field of a specified n ame.翻译:无指定字段的异常发出信号说明类没有指定名称的字段。NoSuchMethodExceptio nThrow n whe n a particular method cannot be found翻译:无指定方法的异常 当一个特定的方法无法找到时抛出NumberFormatExcepti on

19、Thrown to indicate that the application has attempted to convert a string to one ofthe numeric types, but that the string does not have the appropriate format.翻译:数字格式异常抛出时表示应用程序试图将字符串转换为数值类型之一,但该字符串无适当的格式。FileNotF oun dExcepti onSign als that an attempt to ope n the file deno ted by a specified path

20、 name has failed.翻译:指定文件未找到异常发出信号表示试图翻开一个指定路径名表示的文件已经失败。IOExcepti onSignals that an I/O exception of some sort has occurred. This class is the generalclass of excepti ons produced by failed or in terrupted I/O operati ons翻译: 输入异常 发生某种I /O 异常信号。这个类是失败或中断的,I / O 操作所产生的异常类.2编写一个程序,用于根据用户输入的命令行参数数量来计算长方

21、形、正方形、三角形的面积。如果输入的参数个数为1、2、3那么它们应分别对应正方形、长方形、三角形,如果参数值为0,那么异常处理方法显示错误消息。源程序:import java.io.BufferedReader;import java.i o.I OExceptio n;import java.i o.ln putStreamReader;import java.util.Stri ngToke ni zer;abstract class Father abstract void area();class Tr exte nds Fatherdouble a;double b;double c

22、;Tr(double a,double b,double c)this.a=a;this.b=b;this.c=c;void area()double s;float l;l=(float) (a+b+c)/2);s=Math.sqrt(l*(l-a)*(l-b)*(l-c);System.out.pri ntl n(三角形的面积是:+s);class Zf exte nds Fatherint a;Zf(double a)this.a=(i nt) a;public void area()float s; s=a*a;System.out.pri ntl n(正方形的面积是:+s);clas

23、s Cf exte nds Fatherdouble a;double b;Cf(double a,double b)this.a=a;this.b=b;void area()float s;s=(float) (a*b);System.out.println(长方形的面积是:+s);class MyExcepti on exte nds Exceptio nprivate static fin al l ong serialVers ionUID = 1L;public MyException(String message) super(message);public class Area

24、public void test(int i,double a)throws MyExceptionif(i=0)System.out.pri nt(i=+i);throw new MyException(输入参数错误);else if(i=1) Zf m=n ew Zf(a0);m.area();else if(i=2)Cf m=new Cf(a0,a1);m.area();elseTr m=new Tr(a0,a1,a2);m.area();public static void main(String args) throws MyExceptionStri ng s=;BufferedReaderin=new BufferedReader( new In putStreamReader(System.i n);Syst

温馨提示

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

评论

0/150

提交评论