Java程序设计 - 试验5(学生版)

更新时间:2024-03-27 14:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华北电力大学

实 验 报 告

实验名称 异常的抛出、捕获和处理

课程名称 Java程序设计

专业班级: 学生姓名: 号: 成 绩:

指导教师:张学斌 实验日期: | |

| |

华 北 电 力 大 学 实 验 报 告

一、实验目的和要求 1了解程序运行过程中出现的各种错误,针对不同的错误,采取不同的手段排除错误 2 理解异常处理机制的运行方式 3 掌握Java异常处理的基本方法 二、实验环境 Windows2000/Windows XP,JDK 1.2~1.6 三、实验内容和步骤 实验1 内部购物券 1.实验要求 手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券。编写一个MobileShop类(模拟手机专卖店),该类中有一个名字为InnerPurchaseMoney的内部类(模拟内部购物券)。 2.程序模板 NewYear.java class MobileShop { 【代码1】//用内部类InnerPurchaseMoney声明对象purchaseMoney1 【代码2】 //用内部类InnerPurchaseMoney声明对象purchaseMoney1 private int mobileAmount; //手机的数量 MobileShop(){ 【代码3】 //创建价值为20000的purchaseMoney1 【代码4】 //创建价值为10000的purchaseMoney2 } void setMobileAmount(int m) { mobileAmount = m; } int getMobileAmount() { return mobileAmount; } class InnerPurchaseMoney { int moneyValue; InnerPurchaseMoney(int m) { moneyValue = m; } void buyMobile() { if(moneyValue>=20000) { mobileAmount = mobileAmount-6; System.out.println(\用价值\的内部购物卷买了6部手机\ } 第 2 页 共 7 页

华 北 电 力 大 学 实 验 报 告

else if(moneyValue<20000&&moneyValue>=10000) { mobileAmount = mobileAmount-3; System.out.println(\用价值\的内部购物卷买了3部手机\ } } } } public class NewYear { public static void main(String args[]) { MobileShop shop = new MobileShop(); shop.setMobileAmount(30); System.out.println(\手机专卖店目前有\部手机\ shop.purchaseMoney1.buyMobile(); shop.purchaseMoney2.buyMobile(); System.out.println(\手机专卖店目前有\部手机\ } } 实验2 检查危险品 1.实验要求: 车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“属于危险品”。 编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。 程序在主类main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try-catch语句的catch部分处理危险品。 2.程序模板 Check.java public class Check { public static void main(String args[]) { Machine machine = new Machine(); String name[] ={\苹果\炸药\西服\硫酸\手表\硫磺\ Goods [] goods = new Goods[name.length]; //检查6件货物 for(int i= 0;i

华 北 电 力 大 学 实 验 报 告

goods[i].setIsDanger(true); goods[i].setName(name[i]); } } for(int i= 0;i

华 北 电 力 大 学 实 验 报 告

public void checkBag(Goods goods) throws DangerException { if(goods.isDanger()) { DangerException danger=new DangerException(); 【代码1】 //抛出danger } else { System.out.print(goods.getName()+\不是危险品! \ } } } 实验3 自定义异常类 1. 实验要求 声明两个Exception的异常子类:NoLowerLetter类和NoDigit类。再声明一个people类,该类中的void printLetter(char c )方法抛出NoLowerLetter异常类对象,void printDigit(char c ) 方法抛出NoDigit异常类对象。 2. 实验模板 ExceptionExample.java 【代码1】 // 类声明,声明一个Exception的子类NoLowerLetter { public void print() { System.out.printf(\ } } 【代码2】 // 类声明,声明一个Exception的子类NoDigit { public void print() { System.out.printf(\ } } class People { void printLetter(char c) throws NoLowerLetter { if(c<'a'||c>'z') { NoLowerLetter noLowerLetter=【代码3】 // 创建NoLowerLetter类型对象 【代码4】 // 抛出noLowerLetter } else { System.out.print(c); } } void printDigit(char c) throws NoDigit { if(c<'1'||c>'9') { NoDigit noDigit=【代码5】 // 创建NoDigit()类型对象 【代码6】 // 抛出noDigit 第 5 页 共 7 页

华 北 电 力 大 学 实 验 报 告

} else { System.out.print(c); } } } public class ExceptionExample { public static void main (String args[ ]){ People people=new People( ); for(int i=0;i<128;i++) { try { people.printLetter((char)i); } catch(NoLowerLetter e) { e.print(); } } for(int i=0;i<128;i++) { try { people.printDigit((char)i); } catch(NoDigit e) { e.print( ); } } } } 第 6 页 共 7 页

华 北 电 力 大 学 实 验 报 告

第 7 页 共 7 页

本文来源:https://www.bwwdw.com/article/mtzr.html

Top