第八周课程总结&实验报告(六)
实验六 Java异常实验目的理解异常的基本概念; 实验要求练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。 实验内容编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。 车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。技术方案: 编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。 1.实验源码:package e; class Exception1 { public static void main(String[] args) { System.out.println("计算开始。。。"); char s[]= {'q','z','y'}; try { for (int i=0;i<5;i++) { System.out.print(s[i]); } }catch(ArrayIndexOutOfBoundsException d){ System.out.println("数组越界:"+d); }finally { System.out.println("程序得到了执行。。。"); } } } 实验结果:2.实验源码:package e; public class DangerException extends Exception { public DangerException(String string){ this.string=string; } private String string; public String getString() { return string; } public void setString(String string) { this.string = string; } public void toShow(){ System.out.println(""+this.getString()); } } package e; import java.util.Scanner; public class Machine { public void checkBng(Goosd goosd) throws DangerException { //做异常判断 if (goosd.getGoods().equals("小刀") || goosd.getGoods().equals("老鼠药") || goosd.getGoods().equals("浓硫酸")) { System.out.print(goosd.getGoods()); throw new DangerException("是危险物品"); } else{ System.out.println(goosd.getGoods()+"是安全物品"); } } public static void main(String[] args) { Scanner input=new Scanner(System.in); //每次输入一个物品,进行判断 while (true){ System.out.print("请输入你想要查找的物品:"); String strings=input.next(); Goosd goosd=new Goosd(strings); Machine machine=new Machine(); try { //调用方法去判断异常 machine.checkBng(goosd); }catch (DangerException e) { e.toShow(); } finally { //判断是否继续 System.out.print("继续查找危险物品请输入1:,退出请输入0:"); int i=input.nextInt(); if(i==0){ break; } } } } } package e; public class Goosd { private String goods; public Goosd(String goods){ this.goods=goods; } public String getGoods() { return goods; } public void setGoods(String goods) { this.goods = goods; } } 实验结果:实验过程:第一题通过数组越界异常来表面一个简单的异常处理过程。第二题稚嫩的用了scanner,为避免死循环在finally处判断是否继续。老师上课讲到的add方法需要用到集合,集合是用来代替数组的,还不太懂。 课程总结:异常:①:异常处理:try{...}catch{...}finally{...} 多线程:①定义:一个类继承Thread类,子类中必须明确覆写Thread类中的run()方法。 学习总结:果然越学到后面越复杂越难,那些程序员的头就是这么秃掉的。真为以后的职业方向感到迷茫。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |