尚学堂java第六章课后习题

本文章的答案仅供参考

选择题

1.C
2.C

解答:finally是最后处理的语句,所以涉及到释放资源,文件的关闭

3.AC

解答:throws在方法上自动抛出异常,throw指手动抛出异常,故第一条语句应该写为throws,第三条语句该写为throw。

4.CD

解答:Exception–异常,SexException–性别异常,NullPointerException–控指针异常,InputMismatchException–输入类型错误,ArithmeticException–算术异常,ArrayIndexOutOfBoundsException–数组下标超出异常,ClassNotFoundException–类没有找到异常,ClassCastException–类型转换错误

5.B

简答题

1.Error和Exception的区别:
答:

  1. Error指的是JVM上的错误,而不是代码本身的错误,且表示虚拟机已经处于崩溃的阶段;
  2. Exception指的是代码的错误,存在两个子类:CheckedException和UncheckedException

2.checked和runtime异常的区别
答:checked指的是编译时存在的错误,但是runtime异常指的是运行时的错误。

3.在java处理异常时,关键字的throw、try、catch、finally、throw分别代表的是什么意思?

答:

关键字解析
try尝试什么数据
catch对相应的异常进行处理
thorws在方法上抛出异常
throw手动抛出异常
finally最后执行,无论是否存在return

4.throws 和 throw的区别
答:throws指的是在方法上抛出异常,自动抛出异常;但是throw指的是手动的抛出异常,存在实例化的对象。

编码题

1.输入用户的分数信息

public class AverageStudent {
    public static void main(String ags[]){
        Scanner s = new Scanner(System.in);
        int num = s.nextInt();
        int sum=0;
        for(int i=1;i <= num; i++){
            int temp = s.nextInt();
            try {
                if (temp < 0) throw new Exception("输入的数据必须为正数或者0");
            } catch (Exception e) {
                e.printStackTrace();
            }
            sum+=temp;
        }
        System.out.println("平均分为:"+sum/num);
    }
}

2.判断是否可以形成一个三角形

public class Triangle {
    public static void main(String args[]){
        Scanner s = new Scanner(System.in);
        try {
            int a=s.nextInt(),b=s.nextInt(),c=s.nextInt();
            if(a+b>c || b+c>a || a+c>b) System.out.println("a="+a+"b="+b+"c="+c);
            else throw new IllegalArgumentException("abc不可以构成三角形");
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        }
    }
}

3.计算学生平均成绩

class check extends Exception{
    public check(){}
    public check(String name){
        super(name);
    }
}
public class score {
    public static void main(String ags[]){
        Scanner s = new Scanner(System.in);
        try {
            int num = s.nextInt();
            if(num<0 || num>100)
                throw new check("分数必须在0~100之间");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值