欢迎来到天天文库
浏览记录
ID:59200833
大小:24.00 KB
页数:4页
时间:2020-09-10
《异常处理作业答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、异常处理作业答案评分标准:【1】编程题正确,选择题错2题以内可评A,3题以内可评B,4题以内C,5题以内D,其余E。【2】编程题基本不正确,选择题错2题以内可评B,3题以内可评C,4题以内D,其余E。Ø选择题1.BCE2.Btry、catch、finally三个代码块中变量的作用域为代码块内部,分别独立而不能相互访问。因此,变量f在catch和finally块中都是未定义的,编译不能通过,正确答案是B。3.D不管有没有异常发生,finally中的语句都会被执行,所以此题输出ac,答案是D4.D子类覆盖
2、父类的方法不能抛出父类方法未抛出的异常,抛出异常的范围不能大于父类抛出的异常。答案是D.5.BRuntimeException为方法默认抛出的异常,所以子类显式的抛出该异常没有问题。运行该程序会输出AException,答案是B6.D原因和4题一样7.F上溯造型时,方法声明抛出异常是由编译时,即父类声明抛出的异常决定。此题a.process()声明抛出了异常但没处理,所以编译出错。8.A这里没有上溯造型,直接调用子类方法。9.C多catch块自上而下必须是子类在上,父类在下。所以答案是C。10.EØ编
3、程题1.编写一个程序,从键盘输入一个字符串,再把这个字符串转化成整数并输出。第一次输入523看结果是什么,第二次输入number看结果有是什么?那种情况会产生异常,是什么异常?importjava.util.Scanner;publicclassExample6_1{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println("请输入数据以回车结束!");Stringstr=sca
4、nner.nextLine();System.out.println(Integer.parseInt(str));}}第一次结果是输出523第二次会产生异常,异常类型:InputMismatchException,是运行时异常。2.编写一个异常类,用于学生类,目的是控制学生的年龄不能小于1岁大于100岁。importjava.util.Scanner;classAgeExceptionextendsException{publicStringgetMessage(){return"输入的年龄超出范围
5、,请重新输入!(10~40)";}}classStudent{publicvoidsetAge(intage)throwsAgeException{if(age<10
6、
7、age>40){thrownewAgeException();//由数据的拥有者抛出数据范围异常,但不处理异常}else{System.out.println("学生年龄为:"+age);}}}publicclassExample6_2{publicstaticvoidmain(String[]args){Studentstudent
8、=newStudent();System.out.println("请输入学生年龄:");Scannerscanner=newScanner(System.in);inti=1;try{student.setAge(scanner.nextInt());//由使用者处理异常}catch(AgeExceptione){System.out.println(e.getMessage());}}}3、编写一个异常,来控制银行卡中每次取钱的金额不能大于5000元,并且卡上的余额不能小于10元。importja
9、va.util.InputMismatchException;importjava.util.Scanner;//====以下是两个自定义异常类=====classGetExceptionextendsException{publicStringgetMessage(){return"一次提取金额不能超过5000!";}}classLimitExceptionextendsException{publicStringgetMessage(){return"余额不足!";}}//银行卡类publiccl
10、assBankCard{privateintmoney;publicBankCard(intm){money=m;}publicvoidsetMoney(intmoney){this.money=money;}publicintgetMoney(){returnthis.money;}publicvoidget(intgetMon)throwsGetException,LimitException{if(getMon>5000)//提取金额超过5000抛
此文档下载收益归作者所有