关闭控制台输入

2023-06-01  本文已影响0人  哈迪斯Java

import java.util.Scanner;

class OverloadException extends Exception {// 自定义一个异常类OverloadException继承Exception类
public OverloadException(double weight) {// 构造有参的方法
// 出现异常时控制台输出的信息
System.out.println("异常提示:这份鲜鸡蛋的重量为" + weight + "斤,超过3斤了,超重了!!!");
}
}

public class BuyEggs {// 创建一个BuyEggs类
public static void pay(double weight) throws OverloadException {// 创建一个静态的、有参的pay(double
if (weight > 3.0) {// 如果鸡蛋的重量超过三斤
throw new OverloadException(weight); // 抛出异常
}
float money = (float) (weight * 3.98); // 如果鸡蛋的重量没有超过三斤,计算“应付款”
System.out.println("应付款:" + money + "元"); // 输出“应付款”
}

public static void main(String[] args) {
    System.out.print("请输入鲜鸡蛋的重量(斤):");
    Scanner sc = new Scanner(System.in); // 控制台输入
    double weight = sc.nextDouble(); // 声明一个double类型的变量weight接收控制台输入的值
    try {// try块
        pay(weight); // 调用pay()方法,并传递参数weight
    } catch (OverloadException ole) {// catch块
        /*
         * 注意: 这个方法体之所以为“空”是因为在自定义异常的类OverloadException中, 我们通过构造的有参方法public
         * OverloadException(double weight),已将出现异常时的信息在控制台上输出了;
         * 所以,此处就不必再写“System.out.println(ole);”这条控制台输出语句。
         */
    } finally {// finally块
        sc.close(); // 关闭控制台输入
    }
}

}

上一篇 下一篇

猜你喜欢

热点阅读