java 抛出异常的目的_Java实验八,异常

一.实验目的

1. 掌握自定义异常类的编写;

2. 掌握使用try-catch语句来处理异常。

二.实验内容及要求

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品:

1. 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用showMessage()方法输出“属于危险品”。

2. 编写一个Goods类,其中包括行李名称和是否为危险品的属性及对应的设置和获取方法。

3. 编写一个Machine类,其中的checkGoods方法当发现行李为危险品时将抛出DangerException异常。

4. 在主类的main()方法中定义n件行李,随机产生其是否为危险品的属性,并使用try-catch语句让Machine类的实例调用checkGoods方法进行异常处理。

三.实验过程及结果 ①DangerException.java public class DangerException extends Exception{ String message;//字符串变量,是否为危险品 public DangerException() { message = "属于危险品"; }//属性为危险品时,设置变量值为"属于危险品" String showMessage(){ return message; }//返回显示信息 } ②Goods.java public class Goods { String luggageName;//行李名 boolean isDanger;//行李属性。true:危险;false:不危险 void setLuggageName(String luggageName){ this.luggageName = luggageName; }//设置行李名 String getLuggageName(){ return luggageName; }//返回行李名 void setisDanger(boolean b){ isDanger = b; }//随机设置行李属性 boolean getIsDanger(){ return isDanger; }//返回行李属性 } ③Machine.java import java.util.Random; public class Machine { void checkGoods(Goods goods) throws DangerException{ if (goods.isDanger){//若行李性质为true,抛出异常 throw new DangerException(); } } public static void main(String[] args){ Random random = new Random(); Machine machine = new Machine(); //行李名可选择范围 String name[] = {"vegetable", "apple", "gun", "candy", "cheery", "drink"}; Goods goods[] = new Goods[10]; System.out.printf("%-26s|%-13s|%s\n", "行李", "是否危险", "异常信息"); System.out.println("------------------------------------"); for (int i = 0; i < goods.length; i++) { int index = random.nextInt(6); boolean b = random.nextBoolean(); goods[i] = new Goods(); goods[i].setLuggageName(name[index]);//随机设置行李名 goods[i].setisDanger(b);//随机设置行李属性 //输出行李信息 System.out.printf("%-2d. %-12s|%-12s|", i+1, goods[i].getLuggageName(), goods[i].getIsDanger()); if (!goods[i].getIsDanger()) { System.out.println(); } try{ machine.checkGoods(goods[i]);//若危险属性为true,抛出异常 } catch (DangerException e){ System.out.println(e.showMessage());//输出异常信息 } }//for }//main }

c79b88331fadd7e2e91dfb4e6e65fb48.png

四.实验中的问题及心得

1.try-catch:将可能出现异常的操作(代码)放在try部分,一旦try部分抛出异常,或调用某个可能抛出异常对象的方法,且该方法抛出了异常对象,则try部分立刻结束执行,转向catch部分(try-catch可由多个catch组成,分别处理相应异常)

2.Java中所有异常类都是Exception类的子类,属于继承的范畴,对异常类的使用有助于加深对继承的理解

3.Java允许自定义异常类,自定义的异常类可以处理类中独特的异常,自定义的异常类需是Exception类的子类

4.java使用throw关键字抛出一个Exception子类的实例表示异常发生

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值