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

  • 相关阅读:
    python字符串的常用方法
    python基础之数据类型
    python自定义带参数和不带参数的装饰器
    python中logging结合pytest打印日志
    本地的项目上传到gitee仓库步骤--适合小白上手
    Python中的分数运算
    2018年6月23日开通我的Python学习博客
    python多版本兼容性问题:当同时安装Python2和Python3后,如何兼容并切换
    github之关联远程仓库
    SHH验证
  • 原文地址:https://www.cnblogs.com/fjcy/p/10902189.html
Copyright © 2011-2022 走看看