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

实验程序如下:


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);
 }
}
 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的值,使之为负。

 

转载于:https://www.cnblogs.com/pblqjyg/p/10930146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值