标签:article 关于 bsp 处理 ++ nbsp private 源码 fbo
实验六 Java异常
车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。
技术方案:
编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。
实验源码:
1 public class pluto{ 2 public static void main(String args[]) { 3 System.out.println("***开始***"); 4 try { 5 String str1=args[0]; 6 String str2=args[1]; 7 }catch(ArrayIndexOutOfBoundsException e) { 8 System.out.println("数组越界......"+e); 9 }finally { 10 11 } 12 System.out.println("结束......"); 13 } 14 }
实验结果:
实验源码:
1 class DangerException extends Exception{ 2 public void toShow() { 3 System.out.println("危险物品"); 4 } 5 } 6 class Goods{ 7 private boolean Danger; 8 private String name; 9 public Object getName; 10 public Goods(boolean Danger,String name) { 11 this.Danger=Danger; 12 this.name=name; 13 } 14 public boolean Danger() { 15 return Danger; 16 } 17 public void setName(String name) { 18 this.name=name; 19 } 20 public String getName() { 21 return name; 22 } 23 24 } 25 class Machine{ 26 public void checkBag(Goods goods)throws DangerException{ 27 if(goods.Danger()) 28 throw new DangerException(); 29 else 30 System.out.println(goods.getName()+"不是危险品"); 31 } 32 } 33 public class pluto { 34 35 public static void main(String[] args) { 36 Machine mac = new Machine(); 37 Goods goods = new Goods(false, null); 38 String a[] = {"ak47", "器械", "衣服"“笔记本电脑”}; 39 for (int i = 0; i < a.length; i++) { 40 goods.setName(a[i]); 41 if (a[i].equals("ak47") || a[i].equals("管器械")) { 42 goods.Danger(); 43 System.out.println(a[i] + "是危险品"); 44 } else 45 goods.Danger(); 46 } 47 48 try { 49 mac.checkBag(goods); 50 } catch (DangerException e) { 51 e.toShow(); 52 } 53 } 54 }
实验结果:
实验结果;
经过这一周的努力学习,知道了很多关于异常的难点和解决问题的一些方法,也知道两个相似却不同的关键字throw和throws
throw关键
在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理
throws使用格 public 返回值类型 方法名称(参数列表..)throws 异常类{ };
throw关键字
与throws不同的是,可以直接使用throw抛出一个异常。抛出的时候直接抛出异常类的实例化对象即可
throw一般不是单独使用
还了解了不少关于异常的处理机制,我会更加好好学习,啊啊啊啊啊,加油!
标签:article 关于 bsp 处理 ++ nbsp private 源码 fbo
原文地址:https://www.cnblogs.com/ck11-06/p/11701680.html