10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6

10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6

 

 

 

 

 

 

 

实验六 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部分处理危险品。

 

 

package id;
import java.util.*;
public class hope {

    public static void main(String[] args) {
        int score[]=new int [9];
        Scanner out = new Scanner(System.in);
        int n = out.nextInt();
        try{
            for(int i=0;i<9;i++){
                score[i]=i+1;
                
            }
            System.out.println("score["+n+"]="+score[n]+" ");
        }catch(ArrayIndexOutOfBoundsException a){
            System.out.println("越界:"+a);
        }finally{
            System.out.println("处理完毕");
        }
    }

}

  

 

10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6_第1张图片

 

 

 

 

 

package id;
class DangerException extends Exception{
    public void examination() {
        System.out.println("易燃易爆危险物品");
    }
}

class thing{
    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(thing goods)throws DangerException{
        if(goods.Danger()) 
            throw new DangerException();
        else
            System.out.println(goods.getName()+"不是易燃易爆危险品");
    }
}
public class hope{

    public static void main(String[] args){
        Machine mac=new Machine();
        thing goods=new Goods(false, null);
        String a[]={"c4","打火机","笔记本电脑"};
        for(int i=0;i)
        {
            goods.setName(a[i]);
            if(a[i].equals("c4")||a[i].equals("打火机"))
            {
                goods.Danger();
                System.out.println(a[i]+"是易燃易爆危险品");
            }
            else
                goods.Danger();
        }

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

 

 

 

 

 

10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6_第2张图片

 

 

 

 

 

学习总结

 

throw与throws的区别与共同点
1.throws出现在方法函数头,throw出现在函数体。
2.throws表示出现异常的一种可能(不一定会发生这些异常
),throwthrow则一定抛出了某种异常对象。
3.throw不会单独使用
两者都是消极处理异常的方式,不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
 
 
 
 
 
Thread类与Runnable接口
Thread类:Thread对象代表Java程序中单个的运行线程。一个类通过继承Thread类,同时重写其run()方法,就可以实现多线程的方式运行,并继承Thread类的所有方法。Run()方法是运行线程的主体,且由Java直接调用run()方法。
Runnable接口:Runnable接口中只定义了一个方法,即为run方法void run()使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run 方法。 
Thread类runnable接口的区别(不太好解释举个栗子把)

继承Thread类的,就是将任务分给每一个对象来分别完成,因为MyThread继承Thread类,所以在new MyThread的时候在创建对象的同时创建线程;

实现Runnable的, 就是将任务分给多个对象共同完成,new MyThread相当于创建一个任务,然后实例化多个对象,创建线程即安排窗口执行。

 

 

 
try 和 catch 关键字
try 和 catch 关键字是用来捕获异常的关键字
Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。
如果try里没有代码,或者没有try,出现异常会导致程序崩溃。

 

 

Throwable的子类Exception类与RuntimeException类的区别

1、Exception在程序中是必须使用try…catch进行处理。

2、RuntimeException可以不使用try…catch进行处理,但是出现异常要给JVM进行处理

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6)