zoukankan      html  css  js  c++  java
  • 第八周课程总结&第六次实验报告

    实验六 Java异常

    实验目的

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

    实验要求

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

    实验内容

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

    编写一个类,在其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 Work4;
    
    public class exception {
    	 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("结束运行");
    	    }
    
    }
    

    二、实验结果

    一、实验代码

    package Work4;
    
    public class DangerException extends Exception {
        public void toShow() {
            System.out.println("危险物品");
        }
    }
    
    package Work4;
    
    public class Goods {
    	 private boolean Danger;
    	    private String name;
    	    private Object getName;
    	    public void Goods(boolean Danger,String name) {
    	        this.Danger=Danger;
    	        this.name=name;
    	    }
    	    public boolean dangerous() {
    	        
    	        return Danger;
    	    }
    	    public boolean isDanger() {
    	        return Danger;
    	    }
    	    public void setDanger(boolean danger) {
    	        Danger = danger;
    	    }
    	    public String getName() {
    	        return name;
    	    }
    	    public void setName(String name) {
    	        this.name = name;
    	    }
    	    public Object getGetName() {
    	        return getName;
    	    }
    	    public void setGetName(Object getName) {
    	        this.getName = getName;
    	    }
    }
    
    package Work4;
    
    import java.util.ArrayList;
    
    public class Machine {
    	public Machine(ArrayList arrayList) {
    
        }
    
        public void  checkBag(Goods goods) throws Exception{
            if(goods.dangerous()) 
                throw new Exception();
            else
                System.out.println(goods.getName()+"不是危险物品");
        }
    
        public void addDangerList(String string) {
            
        }
    
    	public void removeDangerList(String string) {
    		
    	}
    }
    
    package Work4;
    
    import java.util.ArrayList;
    
    public class test {
    	public static void main(String args[]) throws Exception {
            Machine machine = new Machine(new ArrayList());
            String a[]={"打火机","管制刀具","枪","鼠标"};
            machine.addDangerList("打火机");
            machine.addDangerList("管制刀具");
            machine.addDangerList("枪");
            machine.addDangerList("鼠标");
            machine.addDangerList("饮用水");
            machine.removeDangerList("打火机");
            Goods goods=new Goods();
            for(int i=0;i<a.length;i++) {
                goods.setName(a[i]);
                if(a[i].equals("打火机")||a[i].equals("管制刀具")||a[i].equals("枪")) {
                    goods.dangerous();
                    System.out.println(a[i]+"是危险品");
                }
                else
                    goods.dangerous();
            }
            try {
                machine.checkBag(goods);
            }catch(DangerException e) {
                e.toShow();
            }
            
            
    }
    }
    

    二、实验结果

    实验总结

    本周作业是关于对异常的理解和使用,作业与上课老师讲的例题很相似,所以难度没那么大,但是如果不看着老师的代码来做,可能还是会有些难解决,下次还是希望自己能有独立解决问题能力吧

    课程总结

    异常

    处理异常的三种方法


    一般的异常都需要我们立即处理,不过RuntimeException可以移交给处理器来处理

    异常的处理格式

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

    异常的输出格式

    throws和throws

    throws

    使用格式

    public 返回值类型 方法名称(参数列表...)thows 异常类{}
    

    throw


    注意:throw不能单独使用
    执行程序流程

    Exception与RuntimeException的区别

  • 相关阅读:
    HDU4366 Successor 线段树+预处理
    POJ2823 Sliding Window 单调队列
    HDU寻找最大值 递推求连续区间
    UVA846 Steps 二分查找
    HDU3415 Max Sum of MaxKsubsequence 单调队列
    HDU时间挑战 树状数组
    UVA10168 Summation of Four Primes 哥德巴赫猜想
    UESTC我要长高 DP优化
    HDUChess 递推
    HDU4362 Dragon Ball DP+优化
  • 原文地址:https://www.cnblogs.com/xzy999123/p/11700435.html
Copyright © 2011-2022 走看看