实训题 3:自定义异常处理
一 项目说明
实训目的:了解和掌握 Java 的异常处理机制,利用自定义异常类处理
程序中特有的异常。
实训要求:自定义一个异常类 NoThisSoundException 和设计一个乐器(Instrument)的接口,接口中含有弹奏方法 play,通过定义不同的乐器钢琴(Piano)、小提琴(Violin)来实现接口中的方法,进行相应的弹奏测试,要求完成以下内容:
(1)NoThisSongException 继承 Exception 类,类中有一个无参和一个接收 String 类型参数的构造方法,构造方法中都使用 super 关键字调用父类的构造方法。
(2)play(int index)方法接收一个 int 类型的参数,表示播放歌曲的索引,当 index>10 时,paly()方法用 throw 关键字抛出 NoThisSongException 异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。
(3)在测试类中创建乐器类钢琴(Piano)、小提琴(Violin)的对象,并调用 play()方法测试自定义的 NoThisSongException 异常,使用 try…catch
语句捕获异常,调用 NoThisSongException 的 getMessage()方法打印出异常
信息。
二 类设计
Piano类和Violin类用来实现Instrument接口,类中的play(int index)方法中都是对传入的index进行判断,如果>10就抛出异常,否则歌曲正常播放,NoThisSoundException类中有一个无参和一个接收 String 类型参数的构造方法,构造方法中都使用 super 关键字调用父类的
构造方法。
三 项目实现设计
主方法中用一个switch(key)语句来选择要听的歌曲类型和歌曲曲目,再用该歌曲类型的实例化对象来调用该歌曲的曲目数字(index),如果不在该歌曲曲目之内,则输出自定义异常。
四 运行与测试
五 分析与总结
首先自定义异常的处理我们Java实训课也写了很多次了,期中考试也考了这个异常类的处理这个题,对这个太熟悉了,自定义的异常必须继承自Exception或其子类,在类中定义一个无参的构造方法,一个有参的构造方法。然后在测试类中对要发生异常的地方进行捕获,输出自己定义的异常内容。接口方面的分析跟实训二一样的。都注意一下类和方法的命名即可。类名和接口名每个单词的首字母都要大写。而变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母需大写。
package experiment.three;
public interface Instrument {
void play(int index) throws NoThisSoundException;
}
package experiment.three;