怎样在test方法中加入try/catch语句呢?
来源:4-1 菜单功能
木木汇成林
2019-10-16 15:16:37
public void test() {
TestDemo td=new TestDemo();
Scanner s=new Scanner(System.in);
int input=0,input1=0,input2=0;
while(true) {
td.mainMenu();
System.out.println("请输入对应数字进行操作:");
try {
input=s.nextInt();
if(input==0) {
break;
}
switch(input) {
case 1:
//对播放列表进行管理
td.playListMenu();
System.out.println("请输入对应数字对播放列表进行管理:");
while(true) {
try {
input1=s.nextInt();
if(input1==9) {
break;
}
switch(input1) {
case 1:System.out.println(" 1--将歌曲添加到主播放列表");break;
case 2:System.out.println(" 2--将歌曲添加到普通播放列表");break;
case 3:System.out.println(" 3--通过歌曲id查询播放列表中的歌曲");break;
case 4:System.out.println(" 4--通过歌曲名称查询播放列表中的歌曲");break;
case 5:System.out.println(" 5--修改播放列表中的歌曲");break;
case 6:System.out.println(" 6--删除播放列表中的歌曲");break;
case 7:System.out.println(" 7--显示播放列表中的所有歌曲");break;
default:
System.out.println("请输入对应数字!");break;
}
}catch(InputMismatchException e) {
System.out.println("不能输入非数字,请输入整数!");
e.printStackTrace();
}
}
break;
case 2:
//对播放器进行管理
td.playerMenu();
System.out.println("请输入对应数字对播放器进行管理:");
while(true) {
try {
input2=s.nextInt();
if(input2==9) {
break;
}
switch(input2) {
case 1:System.out.println(" 1--向播放器添加播放列表");break;
case 2:System.out.println(" 2--从播放器删除播放列表");break;
case 3:System.out.println(" 3--通过名字查询播放列表信息");break;
case 4:System.out.println(" 4--显示所有播放列表信息");break;
default:
System.out.println("请输入对应数字!");break;
}
}catch(InputMismatchException e) {
System.out.println("不能输入非数字,请输入整数!");
e.printStackTrace();
}
}
break;
default:
System.out.println("请输入对应数字!");break;
}
}catch(InputMismatchException e) {
System.out.println("不能输入非数字,请输入整数!");
e.printStackTrace();
}
}
}程序运行时,进入了死循环,请问我应该怎么修改呢?
1回答
同学你好,可以做如下修改:
在catch语句块中不需要打印报错信息,也就是不需要编写e.printStackTrace();这句代码,然后在catch中加上sc.next()方法表示从键盘上输入数据,continue跳过此次循环,进行下次循环。这样就可以避免出现死循环啦~
具体修改如下:


如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
回答 2
回答 2