题目描述:
自定义一个异常类NoThisSoundException和Player类,在Player的play()方法中使用自定义异常,要求如下:
- NoThisSoundException继承Exception类,类中有一个无参和一个接收一个String类型参数的构造方法,构造方法中都使用super关键字调用父类的构造方法。
- Player类中定义一个play(int index)方法,方法接收一个int类型的参数,表示播放歌曲的索引,当index>10时,play()方法用throw关键字抛出NoThisSoundException异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。
- 在测试类中创建Player对象,并调用play()方法测试自定义的NoThisSoundException异常,使用try...catch语句捕获异常,调用NoThisSoundException的getMessage()方法打印出异常信息。
package Exception_test;
public class Exception_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Player a=new Player();
//try...catch语句用于捕获异常
try{
a.play(9);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class Player {
//使用throws关键字抛出自定义异常
void play(int index) throws Exception{
if(index>10)
//使用throw关键字声明异常对象
throw new NoThisSoundException("你播放的歌曲不存在...");
else
System.out.println("这是第"+index+"首歌!");
}
}
class NoThisSoundException extends Exception{
//无参构造函数
public NoThisSoundException(){
super(); //调用Exception无参构造函数
}
//有参构造函数
public NoThisSoundException(String a){
super(a); //调用Exception有参构造函数
}
}