定义一个Cicl类,其中包含计算周长和面积的方法,若输入的的半径小于0,就抛出一个自定义异常。

解决方案 »

  1.   

    import java.util.*; 
    import static java.lang.System.*; public lin 

    public static void main(String[] args) 

    // 输入圆的半径r 
    Scanner in=new Scanner(System.in); 
    out.print("intput r:"); 
    double r=in.nextDouble; //求圆的面积S 
    double S=PI*pow(r,2); //求圆的周长A 
    double A=2*PI*r; //输出圆的r,S,A 
    out.print("r:"+r+" "+"S:"+S+" "+"A:"+A); 

    }
    参考一下这个,,,只是没有输出异常!
      

  2.   

    import java.lang.Exception;
    public class Test {
    double r;
    public double circle()throws MyException{
    try{
    if(r<=0)
    throw new MyException();
    return 2*Math.PI*r;
    }catch(MyException me){
    System.out.println("r<=o error!");
    return 0;
    }
    } class MyException extends Exception{
    public MyException(){
    super("MyException");
    }
    }
    }
    上面的代码可以参考一下。
    求面积的方法的处理是类似的。
      

  3.   

    import java.util.Scanner;
    public class Circle { //为了方便没给出圆心属性了
    private double r;   //半径
    Circle() {    //无参构造函数
    this.r = 0;
    }

    Circle(double r) {   //有参构造函数
    this.r = r;
    }

    public double getArea() {   //求面积
    return   Math.PI * r * r ;
    }

    public double getPerimeter() {   //求周长
           return 2.0 * Math.PI * r ;
    }
           
           
    public static void main(String[] args) {
    System.out.print("请输入半径: ");
    Scanner s = new Scanner(System.in);
    double r = 0;
    try {
    r = s.nextDouble();
    if(r<=0) {
    throw new MyException("你输入的半径小于0!!");
    }
    }
    catch(MyException e){
    System.out.println(e.getMessage());
    }
    catch(Exception e){
    System.out.println("输入有错!");
    }
    Circle  c = new Circle(r);
    System.out.println("半径为" + r +"的圆面积:" + c.getArea());
        System.out.println("半径为" + r +"的圆周长:" + c.getPerimeter());   
    }
    }class MyException extends Exception {
    public MyException() {
    }

    public MyException(String msg) {
    super(msg);
    }
    }