實(shí)驗(yàn)六?Java異常
?
實(shí)驗(yàn)代碼:
public class dome{ public static void main(string args[]){ System.out.println("開(kāi)始計(jì)算") int q[]={1,5,9}; try { int num=a[4]; //賦值 System.out.println("輸出結(jié)果:" num); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("數(shù)組越界:" e); } finally { System.out.println("程序執(zhí)行"); } }}
實(shí)驗(yàn)截圖:
?
?
?
?
車站檢查危險(xiǎn)品的設(shè)備,如果發(fā)現(xiàn)危險(xiǎn)品會(huì)發(fā)出警告。編程模擬設(shè)備發(fā)現(xiàn)危險(xiǎn)品。
技術(shù)方案:
編寫一個(gè)Exgeption的子類DangerException,該子類可以創(chuàng)建異常對(duì)象,該異常對(duì)象調(diào)用toShow()方法輸出“危險(xiǎn)物品”。編寫一個(gè)Machine類,該類的方法checkBag(Goods?goods)當(dāng)發(fā)現(xiàn)參數(shù)goods是危險(xiǎn)品時(shí)(goods的isDanger屬性是true)將拋出DangerException異常。
程序在主類的main()方法中的try-catch語(yǔ)句的try部分讓Machine類的實(shí)例調(diào)用checkBag(Goods?goods)的方法,如果發(fā)現(xiàn)危險(xiǎn)品就在try-catch語(yǔ)句的catch部分處理危險(xiǎn)品。
實(shí)驗(yàn)代碼:
package 實(shí)驗(yàn)八;public class Googs { 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 實(shí)驗(yàn)八;import java.util.ArrayList;public class Machine { public Machine(ArrayList arrayList) { } public void checkBag(Googs goods) throws DangerousException{ if(goods.dangerous()) throw new DangerousException(); else System.out.println(goods.getName() "不是危險(xiǎn)物品"); } public void addDangerList(String string) { }}package 實(shí)驗(yàn)八;public class DangerousException extends Exception { public void toShow() { System.out.println("危險(xiǎn)物品"); }}package 實(shí)驗(yàn)八;import java.util.ArrayList;public class Test { public static void main(String args[]) { Machine machine = new Machine(new ArrayList()); String a[]={"汽油","管制刀具","槍","TNT"}; machine.addDangerList("汽油"); machine.addDangerList("管制刀具"); machine.addDangerList("槍"); machine.addDangerList("TNT"); Googs goods=new Googs(); 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] "是危險(xiǎn)品"); } else goods.dangerous(); } try { machine.checkBag(goods); }catch(DangerousException e) { e.toShow(); } }}
實(shí)驗(yàn)截圖:
?
?
總結(jié):這周的作業(yè),挺好寫的,第一題就是處理異常的直接處理,第二題運(yùn)用了延遲處理異常
異常的總結(jié):
不處理:僅在runtimeexcption中,可以不處理
直接處理:
異常的捕獲,最大的是Excption,而Throwablle不僅僅只有excption還有error,而error類不需要程序處理
所以方便一點(diǎn)直接用Excption捕獲全部異常
延遲處理:throws與throw關(guān)鍵字.
throws拋出異常,而交給方法的調(diào)用處進(jìn)行處理
throw自己拋出異常,一定要處理
來(lái)源:https://www.icode9.com/content-4-511951.html聯(lián)系客服