美文网首页
异常处理练习:处理求圆和长方形面积中的异常

异常处理练习:处理求圆和长方形面积中的异常

作者: YOUNG_FAN | 来源:发表于2017-10-28 22:26 被阅读0次

    需求:

    2017.10.28.jpg

    代码:

    /*
    练习:处理求圆和长方形面积中的异常
    */
    class NoValueException extends RuntimeException {   
    
       NoValueException(String msg) {
           super(msg);
       }
    }
    
    interface Shape {   
    
       void getArea();
    }
    
    class Rec implements Shape {
       
       private int len,wid;
       
       Rec(int len,int wid)  { //throws NoValueException 自定义异常继承的是RuntimeException
                               //下面也不用进行异常处理了(不用try catch了
           if (len<=0 || wid<=0)
               throw new NoValueException("出现非法值");
           
           this.len = len;
           this.wid = wid;
       }
       
       public void getArea() {
           System.out.println(len*wid);
       }
    }
    
    class Circle implements Shape {
       
       private int radius;
       public static final double PI = 3.14; //全局常量
       
       Circle(int radius) {
           if (radius<=0)
               throw new NoValueException("非法");
           this.radius = radius;
       }
       
       public void getArea() {
           System.out.println(radius*radius*PI);
       }
    }
    
    class ExceptionText1 {
    
       public static void main(String[] args) {
           Rec r = new Rec(3,4);
           r.getArea();
           
           Circle c = new Circle(38);
           c.getArea();
           System.out.println("over");
       }
    }
    

    总结:

    在实际中,异常处理要单独封装成一个类,这个类的名字便于查看具体是什么异常。对于非法值的异常,可以自定义一个类直接继承RuntimeException异常类,此时不用再抛出异常和处理异常了,出现问题后虚拟机直接停止工作,便于直接改掉非法值,才继续工作。

    相关文章

      网友评论

          本文标题:异常处理练习:处理求圆和长方形面积中的异常

          本文链接:https://www.haomeiwen.com/subject/brtepxtx.html