4-1关于异常抛出问题
如果通过try catch 处理异常,需要好几处分别处理;
如果用throws 声明异常,只用再调用者处理就可以了。 那么有一个问题。在测试中,处理异常后,无法返回原菜单进行循环了;
*******************************
**主菜单**
1--播放列表管理
2--播放器管理
0--退出
*******************************
请输入对应的数字:
a
信息有误
不能再次从键盘接收数据了
代码如下:
public void test () throws InputMismatchException {
TestDemo td = new TestDemo();
Scanner sc = new Scanner(System.in);
// 需要3个变量接收数据
int input = 0, input1 = 0, input2 = 0;
while (true) {
td.mainMenu();
System.out.println("请输入对应的数字:");
input = sc.nextInt();
if (input == 0) {
break;
}
public static void main(String[] args) {
TestDemo td = new TestDemo();
try {
td.test();
} catch (InputMismatchException e) {
System.out.println("信息有误");
}
我的想法是通过在测试类中 建立一个死循环 :
while(true) {
try {
td.test();
} catch (InputMismatchException e) {
System.out.println("信息有误");
}
}
finally {
break;
}
如果按照我这样写的话, 那么死循环,从键盘输入0,还是会进行执行的。 无法实现退出。。我又添加了个finall 语句,这样就可以了。但是再进行后面的代码填写的时候,当把case1 中的信息写好之后我又进行测试 ,测试结果:
*******************************
**主菜单**
1--播放列表管理
2--播放器管理
0--退出
*******************************
请输入对应的数字:
1
***************************************
**播放列表管理**
1--将歌曲添加到主播放列表
2--将歌曲添加到普通播放列表
3--通过歌曲id查询播放列表中的歌曲
4--通过歌曲名称查询播放列表中的歌曲
5--修改播放列表中的歌曲
6--删除播放列表中的歌曲
7--显示播放列表中的歌曲
9--返回上一级菜单
***************************************
请输入对应的数字:
1
将歌曲添加到主播放列表
请输入要添加歌曲的数量:
a
信息有误
又不能往下循环了。 我把finally块中的break,该成了continue;但是返回的是主菜单的信息,而不是让重新输入的当前菜单的信息:如下
*******************************
**主菜单**
1--播放列表管理
2--播放器管理
0--退出
*******************************
请输入对应的数字:
1
***************************************
**播放列表管理**
1--将歌曲添加到主播放列表
2--将歌曲添加到普通播放列表
3--通过歌曲id查询播放列表中的歌曲
4--通过歌曲名称查询播放列表中的歌曲
5--修改播放列表中的歌曲
6--删除播放列表中的歌曲
7--显示播放列表中的歌曲
9--返回上一级菜单
***************************************
请输入对应的数字:
1
将歌曲添加到主播放列表
请输入要添加歌曲的数量:
a
信息有误
*******************************
**主菜单**
1--播放列表管理
2--播放器管理
0--退出
*******************************
请输入对应的数字:
正在回答 回答被采纳积分+1
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星