自定义异常处理(Java实训)
实训目的:
了解和掌握Java的异常处理机制,利用自定义异常类处理程序中特有的异常。
实训要求:
自定义一个异常类NoThisSoundException和设计一个乐器(Instrument)的接口,接口中含有弹奏方法Play,通过定义不懂的乐器钢琴(Piano)、小提琴(Violin)来实现接口中的方法,进行相应的弹奏测试,要求完成以下内容:
(1)NoThisSoundException继承Exception类,类中有一个无参和一个接受String类型参数的构造方法,构造方法中使用super关键字调用父类的构造方法。
(2)play(int index)方法接受一个int类型的参数,表示播放歌曲的索引,当index>10时,play()方法用throw关键字抛出NoThisSoundException异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。
(3)在测试类中创建乐器类钢琴(Piano)、小提琴(Violin)的对象,并调用play()方法测试自定义的NoThisSoundException异常,使用try…catch语句捕获异常,调用NoThisSoundException的getMessage()方法打印出异常信息。

Instrument.java
package program3
public interface Instrument {
void play(int index)throws NoThisSongException
}
> NoThisSongException.java
package program3
public class NoThisSongException extends Exception {
public NoThisSongException() {
super()
}
public NoThisSongException(String message) {
super(message)
}
}
PIano.java
package program3
public class Piano implements Instrument {
public void play(int index) throws NoThisSongException {
// TODO Auto-generated method stub
if(index<=10)
System.out.println("现在播放的是第"+index+"首钢琴曲!")
else
throw new NoThisSongException("您播放的歌曲不存在!")
}
}
Test.java
package program3
public class Test {
public static void main(String[] args) throws NoThisSongException {
// TODO Auto-generated method stub
try {
Instrument p=new Piano()
Instrument v=new Violin()
p.play(5)
// p.play(20);
v.play(3)
v.play(11)
}catch(NoThisSongException e) {
System.out.println(e.getMessage())
}
}
}
Vionlin.java
package program3
public class Violin implements Instrument {
@Override
public void play(int index) throws NoThisSongException {
// TODO Auto-generated method stub
if(index<=10)
System.out.println("现在播放的是第"+index+"首小提琴曲!")
else
throw new NoThisSongException("您播放的歌曲不存在!")
}
}
结果显示:






Comments NOTHING