作業求大神幫忙看看我錯在哪了,掃描儀關不了
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();
}
}
}
2019-05-19
111