异常处理作业答案

2018-12-10 15:02

异常处理作业答案

评分标准: 【1】编程题正确,选择题错2题以内可评A,3题以内可评B,4题以内C,5题以内D,其余E。

【2】编程题基本不正确,选择题错2题以内可评B,3题以内可评C,4题以内D,其余E。

? 选择题 1. BCE 2. B

try、catch、finally三个代码块中变量的作用域为代码块内部,分别独立而不能相互访问。因此,变量f在catch和finally块中都是未定义的,编译不能通过,正确答案是B。

3. D

不管有没有异常发生,finally中的语句都会被执行,所以此题输出ac,答案是D

4. D

子类覆盖父类的方法不能抛出父类方法未抛出的异常,抛出异常的范围不能大于父类抛出的异常。答案是D.

5. B

RuntimeException为方法默认抛出的异常,所以子类显式的抛出该异常没有问题。运行该程序会输出 A Exception,答案是B

6. D

原因和4题一样

7. F

上溯造型时,方法声明抛出异常是由编译时,即父类声明抛出的异常决定。此题 a. process()声明抛出了异常但没处理,所以编译出错。

8. A

这里没有上溯造型,直接调用子类方法。

9. C

多catch块自上而下必须是子类在上,父类在下。所以答案是C。

10. E

? 编程题

1. 编写一个程序,从键盘输入一个字符串,再把这个字符串转化成整数并

输出。第一次输入523看结果是什么,第二次输入number看结果有是什么?那种情况会产生异常,是什么异常?

import java.util.Scanner; public class Example6_1{

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in); }

System.out.println (\请输入数据以回车结束!\ String str = scanner.nextLine();

System.out.println(Integer.parseInt(str)); }

第一次结果是输出523

第二次会产生异常,异常类型:InputMismatchException,是运行时异常。

2. 编写一个异常类,用于学生类,目的是控制学生的年龄不能小于1岁大于100岁。

import java.util.Scanner;

class AgeException extends Exception { public String getMessage() {

return \输入的年龄超出范围,请重新输入!(10~40)\ } }

class Student {

public void setAge(int age) throws AgeException { if (age < 10 || age > 40) {

throw new AgeException();//由数据的拥有者抛出数据范围异常,但不处理异常

} else {

System.out.println(\学生年龄为:\ } } }

public class Example6_2 {

}

public static void main(String[] args) { Student student = new Student(); }

System.out.println(\请输入学生年龄:\

Scanner scanner = new Scanner(System.in); int i=1; try {

student.setAge(scanner.nextInt());//由使用者处理异常 } catch (AgeException e) {

System.out.println (e.getMessage()); }

3、编写一个异常,来控制银行卡中每次取钱的金额不能大于5000元,并且卡上的余额不能小于10元。

import java.util.InputMismatchException; import java.util.Scanner;

//====以下是两个自定义异常类=====

class GetException extends Exception{

public String getMessage() {

return \一次提取金额不能超过5000!\ } }

class LimitException extends Exception{

public String getMessage(){ return \余额不足!\ } }

//银行卡类

public class BankCard {

private int money;

public BankCard(int m){ money = m; }

}

public void setMoney(int money ){ this.money=money; }

public int getMoney(){ return this.money; }

public void get(int getMon) throws GetException,LimitException{

if(getMon>5000) //提取金额超过5000抛出GetException异常 throw new GetException(); else{

if(this.money-getMon<10)

throw new LimitException();//余额不足10元抛出异常 else{ //提款正常的处理

money = money-getMon;

System.out.println (\已成功提取\ System.out.println (\余额还有:\ } } }

public static void main(String[] args){ BankCard card=new BankCard(8000);

Scanner scanner =new Scanner(System.in); }

System.out.println(\请输入您要提取的现金数额:\try{

int money=scanner.nextInt(); card.get(money);

}catch(InputMismatchException ie){

System.out.println(\请输入正确的数字金额!\}catch(GetException ge){

System.out.println(ge.getMessage()); }catch(LimitException le){

System.out.println(le.getMessage()); }


异常处理作业答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汉语修辞学模拟试题1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: