为了账号安全,请及时绑定邮箱和手机立即绑定

作业问题,请教大神帮忙

package try_catch;
import java.util.InputMismatchException;
import java.util.Scanner;
public class TryCatchPractice2 {		
    //在类开始声明,则其他方法都能调用	
    Scanner in=new Scanner(System.in);
    NoBookException NoB=new NoBookException();	
    String[] books={"语文","数学","英语"};	
    static TryCatchPractice2 trycat=new TryCatchPractice2();			
    
    //主函数	
    public static void main(String[]args) throws NoBookException{		
        trycat.InputClassException();	
    }	
    //命令错误
    public void InputClassException()throws NoBookException{			
        try{		
        System.out.println("欢迎光临本图书管理系统");		
       	System.out.println("1.书名查询。2.序号查询");		
       	int a=in.nextInt();		
       	switch(a){		
       	    case 1:	//查找图书		
       	  	trycat.findBooks();			
       	    break;		
       	    case 2://查找序号			
       	    	trycat.findBooksNum();		
       	    break;		
       	    default:		
       	    	throw new NoBookException("错误命令,请输入整数1或2");//如果输入数字非1,2则抛出		
       	    break;	
         }catch(NoBookException e){
 //		InputMismatchException InE=new InputMismatchException();
 //			InE.initCause(e);
 //			System.out.println("错误命令,请输入整数1或2");
 //			求教如何在扫描仪我输入非int型时会提示错误命令,例如a
 			e.printStackTrace();
 			System.out.println("请重新输入:");			
 			InputClassException();		
 	}			
 }			
 //查找图书	
 public void findBooks()throws NoBookException{		
     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 NoBookException("图书不存在");			
           	 }		
         }		
     }catch(NoBookException e){	
     		e.printStackTrace();//捕捉到异常后输出异常位置		
     		NoB.initCause(e);			
     		System.out.println("请重新输入:");	
     		InputClassException();//重新进入系统		
     }	
 }			
 //查找序号
 public void findBooksNum()throws NoBookException{	
 	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 NoBookException("序号错误");			
 	    }		
 	}catch(NoBookException e){		
 		e.printStackTrace();//捕捉到异常后输出异常位置		
 		NoB.initCause(e);			
 		System.out.println("请重新输入:");			
 		InputClassException();//重新进入系统		
 	}			
 }	
 //in.close();//为什么这里打in.close.关闭扫描仪会报错
}


正在回答

1 回答

InputClassException()方法少了个结束的括号

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

作业问题,请教大神帮忙

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信