zoukankan      html  css  js  c++  java
  • 第八周总结

    实验六 Java异常

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

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

    实验内容
    编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。
    自定义异常类的使用

    实验代码

    package Java11;
            public class SHUZU {
            public static void main(String args[]) {
            System.out.println("开始。。。");
            try {
                  String str1=args[0];
                  String str2=args[1];
                  }catch(ArrayIndexOutOfBoundsException e) {
                  System.out.println("数组越界。。"+e);
                    }finally {  
                    }
                    System.out.println("结束。。。");
                }
        }
    

    实验截图

    自定义异常类的使用
    车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

    技术方案:

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

    实验代码

    package Java11;
    
    class DangerException extends Exception{
        public void toShow() {
            System.out.println("危险物品");
        }
    }
    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()+"不是危险品");
        }
    }
    public class YICHANG{
    
        public static void main(String[] args){
            Machine mac=new Machine();
            Goods goods=new Goods(false, null);
            String a[]={"AK47","汽油","箱包"};
            for(int i=0;i<a.length;i++) {
                goods.setName(a[i]);
                if(a[i].equals("AK47")||a[i].equals("汽油")) {
                    goods.Danger();
                    System.out.println(a[i]+"是危险品");
                }
                else
                    goods.Danger();
            }
    
            try {
                mac.checkBag(goods);
            }catch(DangerException e) {
                e.toShow();
            }
        
        }
    }
    

    实验截图

    学习总结

    异常是导致程序运行中断的一种指令,如果不对异常进行正确的处理,则可能会导致程序的中断执行,可能造成重大损失
    所以在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保证程序正常的执行。
    异常处理格式:

    try{
            //有可能出现异常的语句;
    }catch(异常类 异常对象){
           //编写异常的处理语句;
    }[catch(异常类 异常对象){
           //编写异常的处理语句;
    }catch(异常类 异常对象){
           //编写异常的处理语句;
    }...]
    [finally{
          一定会执行的语句;
    }]
    

    异常类的继承结构:
    在整个java的异常结构中,实际上有以下两个最常用的类:Exception、Error,这两个类全都是Throwable的子类。
    1、Exception:一般表示的是程序中出现的问题,可以直接使用try…catch处理。
    2、Error:一般指的是JVM错误,程序中无法处理。

    hrow关键字
    与throws不同的是,可以直接使用throw抛出一个异常。
    抛出的时候直接抛出异常类的实例化对象即可。
    throw不会单独使用

    Exception类与RuntimeException类
    这两个类的区别如下:
    1、Exception在程序中是必须使用try…catch进行处理。
    2、RuntimeException可以不使用try…catch进行处理,但是如果有异常出现,则异常将由JVM进行处理

  • 相关阅读:
    bzoj3505 数三角形 组合计数
    cogs2057 殉国 扩展欧几里得
    cogs333 荒岛野人 扩展欧几里得
    bzoj1123 BLO tarjan求点双连通分量
    poj3352 road construction tarjan求双连通分量
    cogs1804 联合权值 dp
    cogs2478 简单的最近公共祖先 树形dp
    cogs1493 递推关系 矩阵
    cogs2557 天天爱跑步 LCA
    hdu4738 Caocao's Bridge Tarjan求割边
  • 原文地址:https://www.cnblogs.com/tangjiacheng/p/11700283.html
Copyright © 2011-2022 走看看