欢迎来到天天文库
浏览记录
ID:48308555
大小:48.01 KB
页数:4页
时间:2019-11-06
《异常处理_参考 答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、【必做题】1.写出以下程序的运行结果。Staticdoubleaverage(int[]a)throwsNullPointerException{Try{Intsum=0;for(intI=0;I2、{Inta[]=null;average(a);}catch(NullPointerExceptione){System.out.println(“NullPointerException”);}System.out.println(“OK”);}NullPointerExceptionNullPointerExceptionOK2.编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常,并在适当时候触发异常,然后编写一个程序捕获该异常。publicclassMain{pub3、licstaticvoidtest(Strings,Stringa)throwsNullPointerException{if(s==null4、5、a==null){thrownewNullPointerException();}else{}}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{Strings=null;Stringa="asff";test(s,a);}catch(NullPointerExceptione){e.printStackTrace()6、;}}}3.假如要从命令行获得两个整数,自定义两个异常类来描述可能发生的异常:ParameterNumberException(参数个数异常),ParameterFormateException(参数格式异常),设计一个类,在check(Stringargs[])方法中通告这两个异常,在main方法中判断相应的情况下触发异常,然后捕获异常,对它们进行处理。4.给定下面代码: B.Test2publicvoidexample(){ try{ unsafe(); System.out.println("Test1"); }catch(Exception7、e){ System.out.println("Test2"); } finally{ System.out.println("Test3"); } System.out.println("Test4");}如果方法unsafe()运行正常,哪个结果不会被显示出来? A.Test1B.Test2C.Test3D.Test45.编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException异常和ArithmeticException异常在命令行输入不同的参数时能输出如下各种结果: javaA 总是被8、执行 Exceptioninthread"main"java.lang.ArrayIndexOutofBoundsExceptionat A.main(A.java:7) javaA12 0 总是被执行 javaA13a java.lang.NumberFormatException:3a atjava.lang.Integer.parseInt(Integer.java:435) atjava.lang.Integer.parseInt(Integer.java:476) atA.main(A.java:8) 总是被执行9、 javaA10 java.lang.ArithmeticException:/byzeroatA.main(A.java:9) 总是被执行 6.编写一个检查给定的数字的数据类型是否为byte的程序,如果此数字超出byte数据类型表示的数的范围,则引发用户自定义的异常ByteSizeException,并显示相应的错误信息步骤1:创建用户自定义异常类ByteSizeException步骤2:在main方法中编写逻辑代码步骤3:运行并测试效果如图:publicclassByteSizeExceptionextendsException{pub10、licByteSizeException(){super("此数字超出byte数据类型表示的数的范围");}}public
2、{Inta[]=null;average(a);}catch(NullPointerExceptione){System.out.println(“NullPointerException”);}System.out.println(“OK”);}NullPointerExceptionNullPointerExceptionOK2.编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常,并在适当时候触发异常,然后编写一个程序捕获该异常。publicclassMain{pub
3、licstaticvoidtest(Strings,Stringa)throwsNullPointerException{if(s==null
4、
5、a==null){thrownewNullPointerException();}else{}}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{Strings=null;Stringa="asff";test(s,a);}catch(NullPointerExceptione){e.printStackTrace()
6、;}}}3.假如要从命令行获得两个整数,自定义两个异常类来描述可能发生的异常:ParameterNumberException(参数个数异常),ParameterFormateException(参数格式异常),设计一个类,在check(Stringargs[])方法中通告这两个异常,在main方法中判断相应的情况下触发异常,然后捕获异常,对它们进行处理。4.给定下面代码: B.Test2publicvoidexample(){ try{ unsafe(); System.out.println("Test1"); }catch(Exception
7、e){ System.out.println("Test2"); } finally{ System.out.println("Test3"); } System.out.println("Test4");}如果方法unsafe()运行正常,哪个结果不会被显示出来? A.Test1B.Test2C.Test3D.Test45.编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException异常和ArithmeticException异常在命令行输入不同的参数时能输出如下各种结果: javaA 总是被
8、执行 Exceptioninthread"main"java.lang.ArrayIndexOutofBoundsExceptionat A.main(A.java:7) javaA12 0 总是被执行 javaA13a java.lang.NumberFormatException:3a atjava.lang.Integer.parseInt(Integer.java:435) atjava.lang.Integer.parseInt(Integer.java:476) atA.main(A.java:8) 总是被执行
9、 javaA10 java.lang.ArithmeticException:/byzeroatA.main(A.java:9) 总是被执行 6.编写一个检查给定的数字的数据类型是否为byte的程序,如果此数字超出byte数据类型表示的数的范围,则引发用户自定义的异常ByteSizeException,并显示相应的错误信息步骤1:创建用户自定义异常类ByteSizeException步骤2:在main方法中编写逻辑代码步骤3:运行并测试效果如图:publicclassByteSizeExceptionextendsException{pub
10、licByteSizeException(){super("此数字超出byte数据类型表示的数的范围");}}public
此文档下载收益归作者所有