码迷,mamicode.com
首页 > 其他好文 > 详细

实验九:异常的抛出、捕获并处理

时间:2019-05-21 20:57:03      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:col   stat   rect   实现   exception   ||   .com   error   span   

(1)测试Point类中参数异常

 

技术图片

 

point1中参数是负数,故参数报错

 

(2)测试Rectangle类中参数异常

 

技术图片

 

 矩形的高为负数,故参数报错

 

(3)测试Triangle类中参数异常

 技术图片

 

由于三个点斜率都一样,故在一条直线上,参数报错

 

(4)测试Polygon类中参数异常

 

技术图片

 

由于只传入了两个点的参数,无法构成多边形,故参数报错

 

 

源代码如下:

 1 package error;
 2 
 3 public class Throwerror {
 4 public static void main(String[] args) throws IllegalArgumentException
 5 {    Point point1=new Point (3,1);
 6      Point point2=new Point (6,2);
 7      Point point3=new Point (9,3);
 8      new Rectangle(point1, -12,3);
 9      new Triangle(point1,point2,point3);
10      Point[] point= {point1,point2};
11      new Polygon(point);
12     }
13 
14 }
15 
16 class Point
17 {   public Point() {};
18     public int x;
19     public int y;
20     public Point(int x,int y)
21    {   this.x=x;
22        this.y=y;
23         
24         if(x<0||y<0)
25             throw new IllegalArgumentException("Point中无效参数异常");
26        }
27     }
28 class Rectangle extends Point
29 {
30     public int length,width;
31     public Rectangle(Point point1,int length,int width) {
32         this.length=length;
33         this.width=width;
34         if(length<0||width<0)
35             throw new IllegalArgumentException("Rectangle无效参数异常");
36     }
37     }
38 class Triangle extends Point 
39 {
40     
41     public Triangle(Point point1,Point point2,Point point3) {
42         if(point1.x/point1.y==point2.x/point2.y&&point2.x/point2.y==point3.x/point3.y)
43             throw new IllegalArgumentException("Triangle无效参数异常");
44         }
45     }
46 
47 class Polygon extends Point
48 {   int i=0;
49     public Polygon(Point[] points)
50     { i=points.length;
51       if(i<=2)
52         throw new IllegalArgumentException("Polygon无效参数异常");
53         }
54 
55     }
56     

 

 

心得总结:

(1)建立新的异常要通过 throw new IllegalArgumentException(" xxx");实现,xxx表示异常信息

(2)抛出异常可以直接在主函数中抛出,也可以在类中直接抛出 ,例如:public static void main(String[] args) throws IllegalArgumentException   或者   public Point(int x,int y) throws IllegalArgumentException

(3)在检测异常时,要注意将之前的异常注释掉,因为当程序出现异常时,就直接中断程序,就无法测试后面的异常现象

(4)在传入多个点时,要将多个点存放在一个数组中,以便于传入参数

实验九:异常的抛出、捕获并处理

标签:col   stat   rect   实现   exception   ||   .com   error   span   

原文地址:https://www.cnblogs.com/fjcy/p/10902189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!