第八周课程总结&实验报告(六)
实验六 Java异常
package exception; public class Test1 { public static void main(String[] args) { int data[] = new int[8]; try { System.out.println(data[8]); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("数组越界异常:"+e); e.printStackTrace(); } finally { System.out.println("无论有没有异常,都会执行的代码"); } } } 异常出现try catch捕获异常总结数组越界指的是例如定义一个长度为8的数组,当你使用数组下标大于等于8的时候,就会数组越界,这时候就需要try catch捕捉异常,把可能出现异常的代码放在try里,如果异常不存在,就会顺序往下执行,并且不执行catch块中的代码,如果异常存在,try里的代码会立即终止,程序流程会运行到对应的catch块中,这里的e.printStackTrace();会打印出方法调用痕迹,这种打印异常信息是最安全的。
package exception; class Goods{ private boolean isDanger; private String name; public boolean isDanger() { return isDanger; } public void setDanger(boolean isDanger) { this.isDanger = isDanger; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setIsDanger(boolean b) { // TODO Auto-generated method stub } } class DangerException extends Exception{ public void toShow() { System.out.println("危险物品"); } } class Machine{ public void checkBag(Goods goods) throws DangerException{ if(goods.isDanger()) { DangerException danger = new DangerException(); throw danger; } else { System.out.println(goods.getName()+"不是危险物品"); } } } public class Test2{ public static void main(String args[]) { Machine machine = new Machine(); String name[] = {"手机","电饭煲","可乐"}; Goods[] goods = new Goods[name.length]; for(int i = 0;i<name.length;i++) { goods[i] = new Goods(); goods[i].setName(name[i]); if(i%2==0) { goods[i].setIsDanger(false); goods[i].setName(name[i]); } else { goods[i].setIsDanger(true); goods[i].setName(name[i]); } } for(int i = 0;i<goods.length;i++) { try { machine.checkBag(goods[i]); } catch(DangerException e) { System.out.println(name[i]+"是"); e.toShow(); } } } } 运行结果总结第二题暂未解决好,主类里面的内容没有执行,需要修改。 每周学习总结
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |