作业求大神帮忙看看我错在哪了,扫描仪关不了
package try_catch;
import java.util.InputMismatchException;
import java.util.Scanner;
public class TryCatchPractice {
public static void main(String[]args){
TryCatchPractice trycat=new TryCatchPractice();
trycat.InputClassException();
}
public void InputClassException(){
try{
Scanner in=new Scanner(System.in);
String[] books={"语文","数学","英语"};
System.out.println("欢迎光临本图书管理系统");
System.out.println("1.书名查询。2.序号查询");
int a=in.nextInt();
switch(a){
case 1: //查找图书
System.out.println("请输入您要查询的图书:");
String b=in.next();
try{
for(int i=0;i<books.length;i++){
if(books[i].equals(b)){//如果查询的书名不为空,输出书本信息
System.out.println("查询成功");
}else{//如果查询为空,抛出异常
throw new NullPointerException("图书不存在");
}
}
}catch(NullPointerException e){
e.printStackTrace();//捕捉到异常后输出异常位置
System.out.println("请重新输入:");
InputClassException();//重新进入系统
}
break;
case 2://查找序号
System.out.println("请输入您要借阅的图书序号:");
int i=in.nextInt();
try{
if(i<books.length&&i>=0){//如果查询的序号不越界,输出书本信息
System.out.println("查询成功");
System.out.println("您查询的是"+books[i]);
}else{//越界则抛出数组越界异常
throw new ArrayIndexOutOfBoundsException("序号错误");
}
}catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();//捕捉到异常后输出异常位置
System.out.println("请重新输入:");
InputClassException();//重新进入系统
}
break;
}
in.close();
}catch(InputMismatchException e){
System.out.println("请输入整数1或2");
e.printStackTrace();
System.out.println("请重新输入:");
InputClassException();
}
}
}