/*
有一个圆形和长方形都可以获取面积,对于面积,如果出现非法数值,视为获取面积出现问题问题通过异常来表示。先要对这个程序进行基本的设置*//*首先想一下,怎么写这个程序基本属性是肯定要的求面积呢?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 }