求圆面积自定义异常类
作者:互联网
计算圆的面积,其中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+"不合理");
}
}
异常处理最近才学习,讲解的不是很清楚,望采纳。
标签:语句,自定义,area,圆面积,double,CircleException,Circle,异常 来源: https://blog.csdn.net/qq_52391639/article/details/121588646