第八周课程总结&实验报告

摘要:
PublicclassException{publicstaticvoidmain(String[]args){int[]a=newint[1];try{System.out.println(a[1000]);}catch(ArrayIndexOutOfBoundsException){System.out.println;

实验目的
理解异常的基本概念;
掌握异常处理方法及熟悉常见异常的捕获方法。
实验要求
练习捕获异常、声明异常、抛出异常的方法、熟悉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部分处理危险品。

package java7;

public class Exception {
    public static void main(String[] args){
        int [] a= new int[1];
        try{
            System.out.println(a[1000]);
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println("数组越界:"+e);
        }
        finally{
            System.out.println("出现异常,捕获执行!");
        }
    }

}

第八周课程总结&实验报告第1张


package DangerException;

public class DangerException extends Exception {
    public void toShow() {
        System.err.print("属于危险物品");
    }

        }

    class Goods{
        private boolean Danger;
        private String name;
        public Object getName;
        public Goods(boolean Danger,String name) {
            this.Danger=Danger;
            this.name=name;
        }
        public boolean Danger() {
            return Danger;
        }
        public void setName(String name) {
            this.name=name;
        }
        public String getName() {
            return name;
        }

    }
    class Machine{
        public void checkBag(Goods goods)throws DangerException{
            if(goods.Danger()) 
                throw new DangerException();
            else
                System.out.println(goods.getName()+"不是危险品");
        }
    

        }
package DangerException;

public class Test {
    public static void main(String[] args){
        Machine mac=new Machine();
        Goods goods=new Goods(false, null);
        String a[]={"枪","刀具","包 " ,"手机"};
        for(int i=0;i<a.length;i++) {
            goods.setName(a[i]);
            if(a[i].equals("枪")||a[i].equals("刀具")) {
                goods.Danger();
                System.out.println(a[i]+"是危险品");
            }
            else
                goods.Danger();
        }

        try {
            mac.checkBag(goods);
        }catch(DangerException e) {
            e.toShow();
        }
    
    }

    
    }

第八周课程总结&amp;实验报告第2张

总结:1、Exception(异常) 类的层次
所有的异常类是从 java.lang.Exception 类继承的子类。
Exception 类是 Throwable(可抛出的) 类的子类。除了Exception类外,Throwable还有一个子类Error 。
Error:通常是一些物理性的,例如,JVM 本身问题
异常类有两个主要的子类:IOException 类和 RuntimeException 类。
ArithmeticException:算术异常,例如,一个整数"除以零"时,抛出此类的一个实例
NumberFormatException:字符串不能转换为适当格式时,抛出该异常。
ArrayIndexOutOfBoundsException:数组超出绑定时抛出的异常
2、异常处理——捕获异常
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方
一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。
使用 try/catch

try
{
   // 程序代码
}catch(ExceptionName e)
{
   //Catch 块
}finally{

}

免责声明:文章转载自《第八周课程总结&amp;amp;实验报告》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CVPR 2019轨迹预测竞赛冠军方法总结nohup- Shell后台运行下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Winform里面的缓存使用

缓存在很多情况下需要用到,合理利用缓存可以一方面可以提高程序的响应速度,同时可以减少对特定资源访问的压力。本文主要针对自己在Winform方面的缓存使用做一个引导性的介绍,希望大家能够从中了解一些缓存的使用场景和使用方法。缓存是一个中大型系统所必须考虑的问题。为了避免每次请求都去访问后台的资源(例如数据库),我们一般会考虑将一些更新不是很频繁的,可以重用的...

Java解析复杂xml文件,使用Xpath

Java解析复杂xml文件,需要使用到xpath,首先使用了Jdom2。代码示例如下: public static Document GetFileFromLocal(String filename){ try { FileInputStream stream=new FileInputStream(String.format("d:/x下载/%s.xm...

拦截器中获取不到controller注解问题

  刚刚在测试接口的时候发现一个奇怪的问题:通过拦截器获取 controller 类注解,有些能获取到,有些又不能获取到,见鬼了。   【环境】:     1. springboot :2.2.0.RELEASE   【场景】:     1. 定义一个登陆拦截器,对请求的 token 进行校验;     2. 定义两个注解:       RequiredL...

delphi 自我删除和线程池(1000行代码,需要仔细研究)

[delphi]view plaincopy unitUnit4; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls,ShellAPI,ShlObj,uThreadPool; type TF...

转载-&amp;gt;C#异常处理

C#异常处理 异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。 异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:try、catch、finally和throw。 try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 cat...

Dubbo的优雅下线原理分析

文/朱季谦 Dubbo如何实现优雅下线? 这个问题困扰了我一阵,既然有优雅下线这种说法,那么,是否有非优雅下线的说法呢? 这,还真有。 可以从linux进程关闭说起,其实,我们经常使用到杀进程的指令背后,就涉及到是否优雅下线的理念。 在日常开发当中,经常用到kill来关掉正在运行的进程,可能你曾看到过一些文章是不推荐使用kill -9 pid的指令来删除进...