问答详情
源自:1-9 经验总结

作业求大神帮忙看看我错在哪了,扫描仪关不了

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-01-05 22:34

个回答

  • 炼哥
    2019-05-19 14:10:27

    111