霸气小肆毛
2019-03-04 15:21
package $$$$$$$;
public class libraryException extends Exception{//自定义异常
public libraryException() {//无参方法
}
public libraryException(String message) {//有参构造方法
super(message);
}}
package $$$$$$$;
import java.util.Scanner;
public class library {
public static void main(String[] args) {//入口
Index();
}
public static void Index() {
System.out.println("欢迎进入图书馆查书系统\n请输入您的指令:\n1-按名称查找图书\n2-按编号查找图书\n");
Scanner in = new Scanner(System.in);
String i = in.next();
try {
if (i.equals( "1")) {
System.out.println("请输入您需要查找的图书的书名");
name();
} else if (i.equals( "2")) {
System.out.println("请输入您需要查找的图书的编号");
number();
} else {
System.out.println("测试");
throw new libraryException("第一句话:命令输入错误,请根据提示输入命令");
}
} catch (Exception e) {
System.out.println("第二句话:请输入正确指令\n");
Index();
}
}
}
请问各位大佬,为什么当我异常输入指令时,比方说输入查找指令为a时,我想要输出的(第一句话:命令输入错误,请根据提示输入命令),就是不输出呢?
throw new libraryException("第一句话:命令输入错误,请根据提示输入命令")这行代码到底有什么作用呢?
谢谢大佬帮忙解答
下面是运行结果
就看你的main吧,主要问题在这里(上面的框),在抛出libraryException的时候程序不会输出“第一句话:命令输入错误……”按照抛出异常的顺序而是应该在后面的catch中输出语句,所以这块的代码应该改成后面我写的那个(下面的框),然后你再试试。
System.out.println("测试"); throw new libraryException("第一句话:命令输入错误,请根据提示输入命令"); } } catch (Exception e) { System.out.println("第二句话:请输入正确指令\n");
System.out.println("测试"); throw new libraryException(); } } catch (libraryException e) { System.out.println("第一句话:命令输入错误,请根据提示输入命令");
public static void name() {//name方法
Scanner in = new Scanner(System.in);
String str = in.nextLine();
int index = -1;
try {
for (int i = 0; i < BOOK.length; i++) {
if (BOOK[i][1].equals(str)) {
index = i;
break;
}
}
if (index != -1) {
System.out.println("编号: " + BOOK[index][0] + " 书名 " + BOOK[index][1] + " 存在");
} else {
throw new Exception();
}
} catch (Exception e) {
System.out.println("该书不存在,请重新输入正确书名......");
name();
}
}
public static void number() {//number方法
Scanner in = new Scanner(System.in);
String str = in.nextLine();
int index = -1;
try {
for (int i = 0; i < BOOK.length; i++) {
if (BOOK[i][0].equals(str)) {
index = i;
break;
}
}
if (index != -1) {
System.out.println("编号: " + BOOK[index][0] + " 书名 " + BOOK[index][1] + " 存在");
} else {
throw new Exception();
}
} catch (Exception e) {
System.out.println("该书不存在,请重新输入正确编号......");
number();
}
}
public static String[][] BOOK = {{"0001","语文"},{"0002","数学"},{"0003","英语"},{"0004","体育"}};
}
能把number();的代码贴上来看看吗
Java入门第三季
409792 学习 · 4340 问题
相似问题