慕粉3631469
2017-09-19 13:35


在main方法的try块中当rt.order(i)抛出异常后,整个try块就停止执行了,直接开始catch异常,所以在try中用循环体重新执行第一行提示语应该是行不通的,那么应该怎样做到抛出异常后能够循环执行程序?
package com.imooc_third;
import java.util.Scanner;
public class java19 {
public static void main(String[] args) {
int a=1;
do {
int input1=new java19().yi();
switch(input1) {
case 1:
String input2=new java19().name();
switch(input2) {
case "高数": System.out.println("book:高数");break;
default : System.out.println("图书不存在!");continue;
//这里有个很关键的知识点,continue是无法在switch中起作用的,所以
//这里的continue是作用于do while的
}
break;
case 2:
int input3=new java19().xuhao();
switch(input3) {
case 1: System.out.println("book:数据结构");break;
default : System.out.println("图书不存在!");continue;
}
break;
default:System.out.println("命令输入错误!请根据提示输入数字命令!");break;
}
break;
}while(a==1);
}
public int yi() {
try {
System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
Scanner input = new Scanner(System.in);
int input1=input.nextInt();
return input1;
}catch(Exception e) {
return 0;
}
}
public String name() {
try {
System.out.println("请输入图书名称:");
Scanner input = new Scanner(System.in);
String input2=input.next();
return input2;
}catch(Exception e){
return "tushu";
}
}
public int xuhao() {
try {
System.out.println("请输入图书序号:");
Scanner input = new Scanner(System.in);
int input3=input.nextInt();
return input3;
}catch(Exception e){
return 0;
}
}
}这是我的程序
抱着学习的心态来看看,在try块里没有返回值吗,能不能设置成返回值为1,这样在while里写成while(rentbook.start!=1)行吗
楼主能不能把代码贴下学习学习


按照你的思路改了,还有一个小问题
我认为可以把try-catch块提出来放在一个方法里,然后当异常发生时再执行这个方法就可以了
Java入门第三季
409775 学习 · 4546 问题
相似问题