实验九:异常的抛出捕获并处理
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)在传入多个点时,要将多个点存放在一个数组中,以便于传入参数
以上是关于实验九:异常的抛出捕获并处理的主要内容,如果未能解决你的问题,请参考以下文章