你的位置:首页 > Java教程

[Java教程]java异常练习2


/*
有一个圆形和长方形
都可以获取面积,对于面积,如果出现非法数值,视为获取面积出现问题
问题通过异常来表示。
先要对这个程序进行基本的设置

*/
/*首先想一下,怎么写这个程序
基本属性是肯定要的
求面积呢?
1.可以定义成函数
2.可以定义成接口
3.或者数据库什么的
*/

 1 interface Shape    /*可以直接打印,可以返回*/ 2 { 3   void getArea(); /*要传递参数吗?不需要,因为这是抽象类,需要把一些共同的属性抽取出来,这里并没有,需要重写,这里重新获取就可以*/ 4 } 5 class NoValueException extends RuntimeException 6 { 7   NoValueException(String message)   /*构造函数*/ 8   { 9     super(message);       /*调用父类的构造函数*/  /*这里是父类的错误信息,直接能够赋值的*/10   }11 }12 class Cricle implements Shape13 {  14   private int radius;15   public static final double PI=3.14;16   Cricle(int radius)17   {18     if(radius<0)19       throw new RunTimeException("非法");  /*使用这个异常名称不好,不好处理问题,应该自定义名称*/20     this.radius=radius;21   }22   public void getArea()23   {24     System.out.println(radius*radius*PI);  /*不需要改动的值起一个名字 PI*/25   }26 }27 28 29 class Rec implements Shape      /*长方形*/30 {31   private int len,wid;  /*定义长和宽*/32   Rec(int len,int wid)  /*这哥们一初始化就有这个东西*/33   {34     if(len<=0||wid<=0)35     {36       throw new NoValueException("出现非法值");37     }38     39     this.len=len;   /*进行赋值*/40     this.wid=wid;41   42   }43   public void getArea()          /*进行重写*/44   {45     System.out.println(len*wid);   /*直接打印输出面积*/46   }47 }48 49 50 class ExceptionText151 {52   public static void main(String args[])53   {54     //try              /*检测代码块*/55     //{56       Rec r=new Rec(3,4);    /*你发现输入负数,面积为负数,这是不允许的,以前用if避免,但现在,请你用*/57       r.getArea();        /*如果上面的代码出现了错误,这块就不运行了*/58     //}59     //catch(NoValueException e)   /*接收异常,这种处理是没有用的*/60     //{61       //System.out.println(e.toString());        /*输出异常信息*/62     //}63     System.out.println("over");     /*最后输出*/  /*然而运行这是没有用的,还不如直接用运行时异常,不需要检查捕捉处理,直接停掉*/64   }65 }