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

一、

实验代码如下:

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的值,实现异常的抛出、捕获并处理

改变point1的值,使之为负

改变rectangle中的的length值,使之为负

改变point1,point2,point3的值,使之构不成三角形

改变polygon中的point[]中的点的数量,使之小于三

原文地址:https://www.cnblogs.com/JinnyWang/p/10927506.html

时间: 2024-11-02 09:10:02

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

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

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

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

(1)测试Point类中参数异常 point1中参数是负数,故参数报错 (2)测试Rectangle类中参数异常 矩形的高为负数,故参数报错 (3)测试Triangle类中参数异常 由于三个点斜率都一样,故在一条直线上,参数报错 (4)测试Polygon类中参数异常 由于只传入了两个点的参数,无法构成多边形,故参数报错 源代码如下: 1 package error; 2 3 public class Throwerror { 4 public static void main(String[]

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