您好,欢迎访问三七文档
一、【必做题】1.写出以下程序的运行结果。Staticdoubleaverage(int[]a)throwsNullPointerException{Try{Intsum=0;for(intI=0;Ia.length;i++){Sum+=a[i];}Return(((double)sum)/a.length);}catch(NullPointerExceptione){System.out.println(“NullPointerException”);throwe;}}Publicstaticvoidmain(Stringargs[]){Try{Inta[]=null;average(a);}catch(NullPointerExceptione){System.out.println(“NullPointerException”);}System.out.println(“OK”);}NullPointerExceptionNullPointerExceptionOK2.编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常,并在适当时候触发异常,然后编写一个程序捕获该异常。publicclassMain{publicstaticvoidtest(Strings,Stringa)throwsNullPointerException{if(s==null||a==null){thrownewNullPointerException();}else{}}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{Strings=null;Stringa=asff;test(s,a);}catch(NullPointerExceptione){e.printStackTrace();}}}3.假如要从命令行获得两个整数,自定义两个异常类来描述可能发生的异常:ParameterNumberException(参数个数异常),ParameterFormateException(参数格式异常),设计一个类,在check(Stringargs[])方法中通告这两个异常,在main方法中判断相应的情况下触发异常,然后捕获异常,对它们进行处理。4.给定下面代码:B.Test2publicvoidexample(){try{unsafe();System.out.println(Test1);}catch(Exceptione){System.out.println(Test2);}finally{System.out.println(Test3);}System.out.println(Test4);}如果方法unsafe()运行正常,哪个结果不会被显示出来?A.Test1B.Test2C.Test3D.Test45.编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException异常和ArithmeticException异常在命令行输入不同的参数时能输出如下各种结果:javaA总是被执行Exceptioninthreadmainjava.lang.ArrayIndexOutofBoundsExceptionatA.main(A.java:7)javaA120总是被执行javaA13ajava.lang.NumberFormatException:3aatjava.lang.Integer.parseInt(Integer.java:435)atjava.lang.Integer.parseInt(Integer.java:476)atA.main(A.java:8)总是被执行javaA10java.lang.ArithmeticException:/byzeroatA.main(A.java:9)总是被执行6.编写一个检查给定的数字的数据类型是否为byte的程序,如果此数字超出byte数据类型表示的数的范围,则引发用户自定义的异常ByteSizeException,并显示相应的错误信息步骤1:创建用户自定义异常类ByteSizeException步骤2:在main方法中编写逻辑代码步骤3:运行并测试效果如图:publicclassByteSizeExceptionextendsException{publicByteSizeException(){super(此数字超出byte数据类型表示的数的范围);}}publicclassMain{publicstaticvoidfoo(intnumber)throwsByteSizeException{if(number127||number-128){thrownewByteSizeException();}}publicstaticvoidmain(String[]args){try{foo(555);}catch(ByteSizeExceptione){e.printStackTrace();}}}
本文标题:异常处理_参考答案
链接地址:https://www.777doc.com/doc-2428951 .html