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

实验程序:

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", "resource" })
Scanner shuru=new Scanner(System.in);
System.out.println("请输入一个点:");
int h=shuru.nextInt();
int a=shuru.nextInt();

@SuppressWarnings("unused")
Point s=new Point(h,a);
if(x>=0&&y>=0) {
System.out.println("x为:"+Point.x+"y为:"+Point.y);
}
else {
throw new Exception() {
public String toString() {
return "无效参数";
}
};
}
}
catch(Exception e){
System.out.println(e.toString());
}
finally {
System.out.println("程序结束");

}
}

}

package 实验九;

import java.util.Scanner;

public class Rectangle {
static int length;
static int width;
Rectangle(Point point1,int length,int width){
Rectangle.length=length;
Rectangle.width=width;
}
@SuppressWarnings("serial")
public static void main(String[] args) {
try {
@SuppressWarnings("resource")
Scanner shuru=new Scanner(System.in);

System.out.println("请输入一个点:");
int h=shuru.nextInt();
int a=shuru.nextInt();

System.out.println("请输入长方形的长:");
int b=shuru.nextInt();

System.out.println("请输入长方形的宽:");
int c=shuru.nextInt();
Point p1=new Point(h,a);
@SuppressWarnings("unused")
Rectangle m=new Rectangle(p1,b,c);
if(length>=0&&width>=0) {
System.out.println("这是一个长为"+Rectangle.length+"宽为"+Rectangle.width+"的长方形" );
}
else {
throw new Exception() {
public String toString() {
return "无效参数";
}
};
}
}
catch(Exception e){
System.out.println(e.toString());
}
finally {
System.out.println("程序结束");

}
}

}

package 实验九;

import java.util.Scanner;

public class Polygon {
Polygon(Point[] points) {

}
@SuppressWarnings("serial")
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner shuru=new Scanner(System.in);
System.out.println("请输入n");
int n=shuru.nextInt();
int Point[]=new int[n];
int i;
for(i=0;i<n;i++) {
System.out.println("请输入多边形的第"+i+"个点");
int h1=shuru.nextInt();
int a1=shuru.nextInt();
@SuppressWarnings("unused")
Point p2 = new Point(h1,a1);
}
try {
// Point s=new Point(-1,2);
if(Point.length>=3)
{
System.out.println("这可以构成一个多边形");
}
else {
throw new Exception() {
public String toString() {
return "无效参数";
}
};
}
}
catch(Exception e){
System.out.println(e.toString());
}
finally {
System.out.println("程序结束");

}
}
}

package 实验九;

import java.util.Scanner;

public class Triangle {
@SuppressWarnings("unused")
private static final Point Point = null;
public Point point2,point3;
protected double a,b,c;
public Triangle(Point p1,Point p2,Point p3) {
//super("三角形",p1);
this.point2=p2;
this.point3=p3;

}
public Triangle() {
}
@SuppressWarnings("serial")
public static void main(String[] args) {

try {
@SuppressWarnings("resource")
Scanner shuru=new Scanner(System.in);

System.out.println("请输入一个点:");
int h=shuru.nextInt();
int a=shuru.nextInt();
Point p1 = new Point(h,a);

System.out.println("请输入一个点:");
int h1=shuru.nextInt();
int a1=shuru.nextInt();
Point p2 = new Point(h1,a1);

System.out.println("请输入一个点:");
int h2=shuru.nextInt();
int a2=shuru.nextInt();
Point p3 = new Point(h2,a2);
@SuppressWarnings("unused")
Triangle s = new Triangle(p1, p2, p3);
double g=(h1-h)/(a1-a);
double p=(h2-h1)/(a2-a1);
if(g!=p) {
System.out.println("这三个点可以构成一个三角形");
}
else{
throw new Exception() {
public String toString() {
return "无效参数";
}
};
}
}
catch(Exception e){
System.out.println(e.toString());
}
finally {
System.out.println("程序结束");

}
}

}

实验心得:通过本次实验我学习到了异常的抛出,捕获,并处理。程序通过try{}捕捉异常,try如果有异常发生,程序的运行便会中断,抛出“异常类所产生的对象”。try{}抛出的异常对象会进入catch()判断是否是括号内想要捕获的异常,如果是,就会进入catch{}代码块内进行异常的处理,程序继续往下运行,可以有多个catch(){},即可以有多个异常对象,按类处理异常。finally{}程序无论是否捕获异常都会执行,一般用来关闭对象。

原文地址:https://www.cnblogs.com/Java199-wfx/p/10927143.html

时间: 2024-08-03 09:50:08

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

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

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

实验九 异常、断言与日志

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

异常的抛出和捕获

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

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

原始问题: 关于异常中,何时在该类中处理,何时抛给调用类处理,比较纠结.比如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

【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

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

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

Java throw:异常的抛出怎么回事

到目前为止,你只是获取了被Java运行时系统抛出的异常.然而,程序可以用throw语句抛出明确的异常.Throw语句的通常形式如下:    throw ThrowableInstance;这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象.简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常.有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建.