实验九:异常的抛出、捕获并处理

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

原文地址:https://www.cnblogs.com/fjcy/p/10902189.html

时间: 2024-08-29 20:57:33

实验九:异常的抛出、捕获并处理的相关文章

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

一. 实验代码如下: 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};  ne

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

1.源程序 package err; public class err {public static void main(String[] args) throws IllegalArgumentException{ Point point1=new Point (25,1);Point point2=new Point (46,2);Point point3=new Point (9,3);new Rectangle(point1, 12,3);new Triangle(point1,poin

实验九:异常的抛出,捕捉并处理

实验程序: package 实验九; import java.util.Scanner; public class Point { static int x; static int y; Point(int x,int y){ Point.x=x; Point.y=y; } @SuppressWarnings("serial") public static void main(String[] args) { try { @SuppressWarnings({ "unused

异常的抛出和捕获

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>异常的抛出和捕获</title> <script type="text/javascript"> //快捷键F12,或者找到开发者工具 查看问题 //只要出现异常(比如拼写错误),没有处理,脚本就中断执行 //出错后面的就执行

【ThinkingInJava】24、捕获一个异常之后抛出另外一个异常,并且希望吧原始的信息保存下来

/** * 书本:<Thinking In Java> * 功能:捕获一个异常之后抛出另外一个异常,并且希望吧原始的信息保存下来,这个被称为异常链 * 文件:DynamicFields.java * 时间:2015年4月9日16:24:44 * 作者:cutter_point */ package Lesson12_error_handling_with_exceptions; import static net.mindview.util.Print.*; class DynamicFiel

实验九 异常、断言与日志

实验九 异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 掌握java异常处理技术: (2) 了解断言的用法: (3) 了解日志的用途: (4) 掌握程序基础调试技巧: 2.实验内容和步骤 实验1:用命令行与IDE两种环境下编辑调试运行源程序ExceptionDemo1.ExceptionDemo2,结合程序运行结果理解程序,掌握未检查异常和已检查异常的区别. //异常示例1 public class ExceptionDemo1 { public static vo

异常何时抛出?何时自己处理?

原始问题: 关于异常中,何时在该类中处理,何时抛给调用类处理,比较纠结.比如IO中new FileInputStream(),new InputStreamReader(fStream, "UTF-8");in.readLine()等他们异常哪些本类中处理,还是都抛给调用者. 讨论: 李:其实对于方法中的异常处理有两种方法:1.在该函数中用try...catch语句进行捕获和处理.2.直接抛出异常(这种做法有一点模糊,因为并不能确定该方法是否有异常),那么调用该方法的调用者就要处理这个

异常的抛出

  div的异常抛给main来处理: class Math{     public int div(int i,int j)throws Exception{         int temp=i/j;         return temp;     } } public class ThrowsDemo01 { public static void main(String[] args){     Math m=new Math();         try {             Sy

C# 中异常抛出捕获机制--throw / try,catch,finally

try { messagebox.show("true"); } catch { messagebox.show("false"); } finally { messagebox.show("finally"); } notes:      抛出异常用 throw new exception,捕获异常用 try..catch..finally try ... catch 的目的是解决程序在出现错误时无法继续执行下去的问题. try不一定只能和ca