zoukankan      html  css  js  c++  java
  • 实验九:异常的抛出、捕获并处理

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

  • 相关阅读:
    PHP 周转换为日期(最后一天) date("o-W")转Y-m-d日期——贴上代码
    开机后apache假死问题解决
    JS控制滚动条 —— 进度条的简单制作
    2014年初组装的第一台电脑
    开启mysql远程连接
    PHP数组的指针操作方法
    Ubuntu Server 13.04安装图形界面
    utf-8和GBK中文字符的长度计算
    2014校园招聘——历程2
    基于LLVM开发属于自己Xcode的Clang插件
  • 原文地址:https://www.cnblogs.com/fjcy/p/10902189.html
Copyright © 2011-2022 走看看