文档详情

第9章异常处理.ppt

发布:2025-06-09约1.15万字共54页下载文档
文本预览下载声明

有一个名为com.boda.xy.ArrayUtils的实用工具类,该类有一个名为addArray的静态方法,用于对两个长度相同的数组相加。addArray的签名如下:publicstaticlong[]addArray(int[]?array1,int[]array2)throwsMismatchedArrayException,NullPointerException??????问题描述如果两个参数的长度不相同(比如,一个长度是3,一个长度是5),方法抛出一个自定义异常MismatchedArrayException,要求该异常类的toString方法必须返回下面这个值:数组大小不同。第一个数组大小是3,第二个数组大小是5.如果其中一个数组为null,该方法将抛出NullPointerException异常。编程测试产生这两种异常的情形。(1)由于MismatchedArrayException异常只在addArray静态方法中使用,所以这里可将该类定义为外层类ArrayUtils类的静态内部类。(2)为MismatchedArrayException类定义一个带两个参数的构造方法,因为抛出该异常对象时要传递两个数组的大小。(3)覆盖MismatchedArrayException类的toString()方法输出异常信息。(4)在addArray()方法中,当两个数组大小不相等时,使用throw语句抛出创建的MismatchedArrayException对象。设计思路publicstaticclassMismatchedArrayExceptionextendsException{intx=0,y=0;publicMismatchedArrayException(intx,inty){this.x=x;this.y=y;}@OverridepublicStringtoString(){ return数组大小不同。第一个数组大小是+x+,第二个数组大小是+y+.; }}程序10.12ArrayUtils.javapublicstaticlong[]addArray(int[]array1,int[]array2) throwsMismatchedArrayException,NullPointerException{ if(array1.length!=array2.length){ thrownewMismatchedArrayException(array1.length,array2.length); } if(array1==null||array2==null){ thrownewNullPointerException(); } varresult=newlong[array1.length]; for(vari=0;iarray1.length;i++){ result[i]=array1[i]+array2[i]; } returnresult;} publicstaticvoidmain(String[]ars){ int[]a=newint[]{1,2,3}; //int[]a=newint[]{1,2,3,4,5}; int[]b=newint[]{1,2,3,4,5}; //int[]b=null; long[]result; try{ result=addArray(a,b); for(varn:result){ System.out.println(n); } }catch(Exceptione){ System.out.println(e.toString()); } }6.1.1编程作业面向对象程序设计(Java语言描述?微课版?基于IntelliJIDEA)1.

显示全部
相似文档