求圆面积自定义异常类

计算圆的面积,其中PI取3.14,圆半径为负数时应抛出异常,输出相应提示。根据提供的主类信息,编写Circle类和CircleException类,以及在相关方法中抛出异常。

函数接口定义:

裁判测试程序:

在这里给出主类
import java.util.*;
public class Main {

 public static void main(String[] args) {
        double s=0;
        Scanner sc=new Scanner(System.in);
        double r1,r2;
        r1=sc.nextDouble();
        r2=sc.nextDouble();
        Circle c1=new Circle(r1);
        Circle c2=new Circle(r2);
        try{

        s = c1.area();
        System.out.println(s);
        s = c2.area();
        System.out.println(s);
        }
        catch (CircleException e){
            e.print();
        }
   }
}


/* 请在这里填写答案 编写Circle 和CircleException类*/

输入样例:

在这里给出一组输入。例如:

3.5 -3.5

输出样例:

在这里给出相应的输出。例如:

38.465
圆半径为-3.5不合理

由于程序在try语句中会调用area()方法,所以我们可以在Circle类中的area()方法中加上判断半径r是否会产生异常,如果圆的半径小于零,就说明产生了异常,这时我们手动创建一个异常对象(一般的,SUN公司自己的异常类,当产生异常时,会自动创建一个异常对象),并将异常对象抛出(这里处理异常有两种方法,抛出异常和利用try..catch语句抓住异常,这里我选择的是抛出异常),throw e;语句即为抛出语句,由于area()方法在声明时后面有throws CircleException语句(抛出CircleException异常),所以说明我们将异常抛给了调用area()方法的地方(即主方法中),调用的地方选择用tyr..catch语句来处理异常,所以catch语句中调用print()方法,来处理异常。

class Circle{
    double r;
    Circle(double r) {
        this.r = r;
    }
    public double area() throws CircleException{
        if(r<0)
        {//判断异常是否会产生
            CircleException e = new CircleException(r);//在创建对象时将半径赋值给CircleException对象
            throw e;//抛出异常
        }
        return 3.14*r*r;
    }
}
class CircleException extends Exception {
    double r;
    CircleException(double r){//有参数的构造方法
        this.r = r;
    }
    public void print () {//被调用的print语句
        System.out.println("圆半径为"+r+"不合理");
    }
}

 异常处理最近才学习,讲解的不是很清楚,望采纳。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值