java_⾃定义受检异常类 OddException,表示两个数相除时,除数为奇数时出现的异常。

package experiment6.exp2;

import java.util.Scanner;

/*⾃定义受检异常类 OddException,表示两个数相除时,
除数为奇数时出现的异常。
该类必须定义两个构造⽅法:
默认构造⽅法和
带字符串参数的构造⽅法。

编写MathDivide类,实现成员⽅法divide(double b,double c),两个数据的除法。

程序接受从控制台输⼊的两个浮点数,
计算这两个数的商。
如果输⼊的除数是奇数,将抛出OddException异常并处理,否则输出这两个数的商。

 */
public class DivideTryCatch {
    public static void main(String[] args) {
        System.out.println("请输入被除数和除数并用逗号隔开,输入两组:");

       /* float a=sc.nextFloat();
        String tmp=sc.next();
        float b=sc.nextFloat();*/
        int cnt=0;
        while(cnt++<2) {
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            String[] arrayLine = line.split(",");
            double a = Double.parseDouble(arrayLine[0]);
            double b = Double.parseDouble(arrayLine[1]);
            MathDivide mathdivide = new MathDivide();
            //System.out.println(a+"/"+b+"=" +mathdivide.divide(a, b));
            mathdivide.divide(a, b);
        }
    }
}

package experiment6.exp2;
/*⾃定义受检异常类 OddException,表示两个数相除时,
除数为奇数时出现的异常。
该类必须定义两个构造⽅法:
默认构造⽅法和
带字符串参数的构造⽅法。*/
public class OddException extends Exception {
    String str;
    double m,n;
    public OddException(double b,double c){
        //System.out.print(b+"/"+c+"中除数不能为奇数");
        m=b;
        n=c;
    }

    public  OddException(){

    }
    @Override
    public String getMessage() {

        return String.format("%.2f/%.2f=", m,n)+"中除数不能为奇数";
    }
}

package experiment6.exp2;

import java.text.DecimalFormat;

/*编写MathDivide类,实现成员⽅法divide(double b,double c),两个数据的除法。*/
public class MathDivide {
    void divide(double b,double c){
        if(c%2!=0){
            try {
                throw new OddException(b,c);
            } catch (OddException e) {
                e.printStackTrace();
            }
        }
        else
            System.out.println(String.format("%.2f/%.2f=", b,c)+new DecimalFormat("0.00").format(b/c ));

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值