JAVA实验报告及第八周总结

实验六 Java异常

##实验目的
理解异常的基本概念;
掌握异常处理方法及熟悉常见异常的捕获方法。

实验要求

练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。
掌握自定义异常类的方法。

实验内容

编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。
自定义异常类的使用
车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

技术方案:

编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。

第一题代码:

public class 数组 {

    public static void main(String[] args) {
        int score[]= {75,4,6};
        try {
            for(int i=0;i<score.length+1;i++) {
                System.out.println("score["+i+"]="+score[i]);
            }
        }catch(ArrayIndexOutOfBoundsException e) {
            System.out.println("数组越界异常"+e);
        }
        finally {
                System.out.println("程序执行完毕");
        }
    }

}

实验截图:

第二题:

import java.util.Scanner;
import java.util.ArrayList;
public class Danger {
    public static void main(String[] args) {
        ArrayList<String> Danger=new ArrayList<String>();
        Danger.add("耐克");
        Danger.add("彪马");
        Danger.add("阿迪达斯");
        Danger.add("锐步");
        Danger.add("斐乐");//通过ArrayList输入确定的危险物品
        for(int i=0;;i++) {   //设置for循环确保可以一直输入
        Scanner n=new Scanner(System.in);
        String thing=n.next();
        Goods goods=new Goods(thing);//输入通过的东西
        Machine machine=new Machine();
            try {
                machine.checkBag(goods);
            } catch (DangerException e) {
                if(Danger.contains(thing)) {
                    e.toShow();
                    System.out.println(goods.getName() + ":禁止通过");
                }
                else{
                    System.out.println(goods.getName() + ":通过");
                }
            }
        }
    }
}
class Machine {

    public void checkBag(Goods goods) throws DangerException{
       if(goods.isDanger){
           DangerException danger=new DangerException();
           throw danger;
       }
       else {
           System.out.println(goods.getName()+"不是危险物品!");
       }
   }

}
class Goods {
    private String name;
    boolean isDanger=true;
    public Goods(String name){
        this.name=name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

}
class DangerException extends Exception{
    String massage;
    public DangerException(){
        this.massage="危险物品!";
    }
    public void toShow(){
        System.out.println("危险物品!!!!!!!!!");
    }

}

实验截图:

总结:

1.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象

2.hrow关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句

原文地址:https://www.cnblogs.com/ydlBLOG/p/11701407.html

时间: 2024-10-09 20:05:48

JAVA实验报告及第八周总结的相关文章

java实验报告&amp;第三周学习总结

实验报告: 实验1:求水仙花数在C语言中求水仙花数是一个复杂且长的代码,在java中可以通过简单的代码来实现操作,找出水仙花数: 图例如下: 试验2:求13+23-33+43-53.........973-983+993-1003: 图例如下; 实验三:使用java计算 1!+2!+3!+............+18!+19!+20!; 图例如下: 实验四:使用java计算 8+88+888+......8888888888; 图例如下: 第三周java学习总结: 第三周的java学习进入了,

Java实验报告 (20135102周永杰)

一.实验内容 (一).命令行下Java程序开发 (二).Eclipse下Java程序开发.调试 (三).通过命令行和eclipse两种方式实现四则运算并进行测试 二.实验过程 (一)命令行下Java程序开发 打开终端(类似Windows下的cmd),之后会自动运行shell程序,输入cd Code命令进入Code(注意C要大写)目录. 输入mkdir 20135102命令建立实验目录,可以使用ls命令或dir命令查看建立的目录情况. 输入cd 20135102命令进入实验目录,再输入类似mkdi

第五实验报告及第七周总结

设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出.    注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/22.编程技巧(1)    抽象类定义的方法在具体类要实现:(2)    使用抽象类的引用变量可引用子类的对象:(3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法.可将所有对象存入到

20135231 JAVA实验报告三:敏捷开发与XP实践

---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一律得0分)以及分析(从中

张季跃&#160;201771010139《面向对象程序设计(java)》第八周学习总结

张季跃 201771010139<面向对象程序设计(java)>第八周学习总结 理论知识部分: 6.1 接口 l(1)Java为了克服单继承的缺点,Java使用了接口, 一个类可以实现一个或多个接口. l (2) 在Java程序设计语言中,接口不是类,而是对类 的一组需求描述,由常量和一组抽象方法组成. l (3) 接口中不包括变量和有具体实现的方法. l (4) 只要类实现了接口,则该类要遵从接口描述的统 一格式进行定义,并且可以在任何需要该接口的 地方使用这个类的对象. 6.2 接口示例

20172325 2017-2018-2 《Java程序设计》第八周学习总结

20172325 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 1.关于绑定 绑定:在执行程序时产生一个请求事件,需要执行一段代码来来完成方法调用,即一个方法调用与一个方法定义的绑定. 后绑定:后绑定就是延迟绑定的情况.(后绑定的效率低于编译阶段的绑定效率) 2.由继承实现多态性 一个引用变量可以指向由继承关系的任何类的任何对象: 实际将调用的方法版本取决于对象的类型而不是引用变量的类型: 3.利用接口实现多态性 接口引用变量可以指向实现该接口的任何类的任何对象

杨玲 201771010133《面向对象程序设计(java)》第八周学习总结

<面向对象程序设计(java)>第八周学习总结 第一部分:理论知识学习部分 1. 接口:用interface声明,是抽象方法和常量值定义的集 合.从本质上讲,接口是一种特殊的抽象类. (1)在Java程序设计语言中,接口不是类,而是对类 的一组需求描述,由常量和一组抽象方法组成. ? 接口中不包括变量和有具体实现的方法. (2)接口体中包含常量定义和方法定义,接口中只进 行方法的声明,不提供方法的实现. (3)通常接口的名字以able或ible结尾: (4)接口中的所有常量必须是public

20175314 《Java程序设计》第八周学习总结

20175314 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型和集合框架 泛型:可以使用class名称声明一个类,<>里面可以是类和接口,但不能是基本数据类型,泛型还可以作为一种新的声明方式,使用泛型时,不必进行强制类型转换 链表:性质跟C语言大致,但定义和使用不同,比C语言要方便.使用LinkedList来创建链表对象.链表对象有一个很重要的方法是iterator(),使用它可以获得一个Iterator对象,可以对链表进行遍历(迭代),链表还可以进行排序.

《Java程序设计》第八周学习总结

学号 20175313 <Java程序设计>第八周学习总结 一.教材学习内容总结 第十五章主要内容 了解String类 常量对象:常量池中的数据在程序运行期间再也不允许改变. String对象:用户无法输出String对象的引用. 例如: String s = new String("i am a student"); System.out.pintln(s);//输出对象的实体 可以用s.toString()来返回对象引用的字符串 表示. 输出:i am a studen