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
}
四. 实验中的问题及心得
1. try-catch:将可能出现异常的操作(代码)放在try部分,一旦try部分抛出异常,或调用某个可能抛出异常对象的方法,且该方法抛出了异常对象,则try部分立刻结束执行,转向catch部分(try-catch可由多个catch组成,分别处理相应异常)
2. Java中所有异常类都是Exception类的子类,属于继承的范畴,对异常类的使用有助于加深对继承的理解
3. Java允许自定义异常类,自定义的异常类可以处理类中独特的异常,自定义的异常类需是Exception类的子类
4. java使用throw关键字抛出一个Exception子类的实例表示异常发生
标签:goods,Java,行李,危险品,try,实验,DangerException,异常 来源: https://blog.csdn.net/weixin_42250302/article/details/89293226