实验程序如下:
public class 图形 {
public static void main(String[] args) {
point p1=new point(0,0);
point p2=new point(1,0);
point p3=new point(0,1);
rectangle r=new rectangle(p1,5,6);
triangle t=new triangle(p1,p2,p3);
point[] point= {p1,p2};
new polygon(point);
point p1=new point(0,0);
point p2=new point(1,0);
point p3=new point(0,1);
rectangle r=new rectangle(p1,5,6);
triangle t=new triangle(p1,p2,p3);
point[] point= {p1,p2};
new polygon(point);
}
}
class point
{
int x;
int y;
point(){}
public point (int x,int y)throws IllegalArgumentException
{
this.x=x;
this.y=y;
if(x<0||y<0)
throw new IllegalArgumentException("无效参数");
}
}
class rectangle extends point
{
int length;
int width;
public rectangle(point point1,int length,int width)throws IllegalArgumentException
{
this.length=length;
this.width=width;
if(length<0||width<0)
throw new IllegalArgumentException("无效参数");
}
}
class triangle extends point
{
public triangle(point point1,point point2,point point3)throws IllegalArgumentException
{
if(Math.sqrt(Math.pow((point1.x-point2.x), 2)+Math.pow((point1.y-point2.y), 2))-Math.sqrt(Math.pow((point2.x-point3.x), 2)+Math.pow((point2.y-point3.y), 2))<Math.sqrt(Math.pow((point1.x-point3.x), 2)+Math.pow((point1.y-point3.y), 2)))
if(Math.sqrt(Math.pow((point1.x-point3.x), 2)+Math.pow((point1.y-point3.y), 2))-Math.sqrt(Math.pow((point2.x-point3.x), 2)+Math.pow((point2.y-point3.y), 2))<Math.sqrt(Math.pow((point1.x-point2.x), 2)+Math.pow((point1.y-point2.y), 2)))
if(Math.sqrt(Math.pow((point1.x-point2.x), 2)+Math.pow((point1.y-point2.y), 2))-Math.sqrt(Math.pow((point1.x-point3.x), 2)+Math.pow((point1.y-point3.y), 2))<Math.sqrt(Math.pow((point2.x-point3.x), 2)+Math.pow((point2.y-point3.y), 2)))
throw new IllegalArgumentException("无效参数");
}
}
class polygon extends point
{
public polygon(point[] points)throws IllegalArgumentException
{
int i;
i=points.length;
if(i<=2)
throw new IllegalArgumentException(无效参数");
}
}
}
class point
{
int x;
int y;
point(){}
public point (int x,int y)throws IllegalArgumentException
{
this.x=x;
this.y=y;
if(x<0||y<0)
throw new IllegalArgumentException("无效参数");
}
}
class rectangle extends point
{
int length;
int width;
public rectangle(point point1,int length,int width)throws IllegalArgumentException
{
this.length=length;
this.width=width;
if(length<0||width<0)
throw new IllegalArgumentException("无效参数");
}
}
class triangle extends point
{
public triangle(point point1,point point2,point point3)throws IllegalArgumentException
{
if(Math.sqrt(Math.pow((point1.x-point2.x), 2)+Math.pow((point1.y-point2.y), 2))-Math.sqrt(Math.pow((point2.x-point3.x), 2)+Math.pow((point2.y-point3.y), 2))<Math.sqrt(Math.pow((point1.x-point3.x), 2)+Math.pow((point1.y-point3.y), 2)))
if(Math.sqrt(Math.pow((point1.x-point3.x), 2)+Math.pow((point1.y-point3.y), 2))-Math.sqrt(Math.pow((point2.x-point3.x), 2)+Math.pow((point2.y-point3.y), 2))<Math.sqrt(Math.pow((point1.x-point2.x), 2)+Math.pow((point1.y-point2.y), 2)))
if(Math.sqrt(Math.pow((point1.x-point2.x), 2)+Math.pow((point1.y-point2.y), 2))-Math.sqrt(Math.pow((point1.x-point3.x), 2)+Math.pow((point1.y-point3.y), 2))<Math.sqrt(Math.pow((point2.x-point3.x), 2)+Math.pow((point2.y-point3.y), 2)))
throw new IllegalArgumentException("无效参数");
}
}
class polygon extends point
{
public polygon(point[] points)throws IllegalArgumentException
{
int i;
i=points.length;
if(i<=2)
throw new IllegalArgumentException(无效参数");
}
}
实验结果:
不断改变point的值,实现异常的抛出、捕获并处理
1.改变point1的值,使之为负。
2.改变rectangle中的的length值,使之为负。
3.改变point1,point2,point3的值,使之构不成三角形。
4.改变polygon中的point[]中的点的数量,使之小于三。
实验心得:
1.通过本次实验,了解异常处理机制的必要性和异常处理的措施。
2.通过自己的努力和网上资料的查找,基本完成了此次实验。