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

Posted fjcy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验九:异常的抛出捕获并处理相关的知识,希望对你有一定的参考价值。

(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)在传入多个点时,要将多个点存放在一个数组中,以便于传入参数

以上是关于实验九:异常的抛出捕获并处理的主要内容,如果未能解决你的问题,请参考以下文章

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

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

实验九:异常的抛出,捕捉并处理

异常的抛出,捕获并处理

第九次实验+第八次实验

异常的抛出和捕获