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 Shape
13 {    
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 ExceptionText1
51 {
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 }
原文地址:https://www.cnblogs.com/liangqiyuan/p/5645119.html