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

个人写的借书系统问题,如果书名或者序号不匹配无法按照要求输出异常信息。求指点如何修改。

package library;
import java.util.Scanner;
public class BorrowBook {
public static void main(String[] args) {
	int choose;
	try{System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
	@SuppressWarnings("resource")
	Scanner input = new Scanner(System.in);
	choose = input.nextInt();
	if(choose!=1&&choose!=2)
		throw new Exception();
	}catch(Exception e){
		System.out.println("命令输入错误!请根据提示输入数字命令!");
		System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
		@SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);
		choose = input.nextInt();
	}
	if(choose==1){
		System.out.println("请输入图书名称:");
		@SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);
		String bookName = input.nextLine();
		NameFind find = new NameFind();
		try {
			find.find(bookName);
		} catch(NameException e){
			e.printStackTrace();
		}
		catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}//if(choose==1)
	
     if(choose==2){
    	 System.out.println("请输入图书序号:");
    	 @SuppressWarnings("resource")
		Scanner input2 = new Scanner(System.in);
    	 int bookNum = input2.nextInt();
    	 NumFind find2 = new NumFind();
    	 try {
			find2.find(bookNum);
		} catch (NameException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
     }//if(choose2)
	
}//main
}//class



package library;

public class NameFind {
String[] name = {"高数","数据结构"};
public void find (String book)throws NameException {
	int count=0;
	for(int i=0;i<name.length;i++)
		if(book.equals(name[i]))
			System.out.println("book:"+name[i]);
		else count++;
		if(count==name.length&&(!name[count].equals(book)))	
		    throw new NameException("图书不存在");
  }//find
}//class



package library;

public class NumFind {
	String[] name = {"高数","数据结构"};
	int[] num = {1,2};
	int count =  0;
	public void find(int book)throws NameException{
		for(int i=0;i<num.length;i++)
			if(book==num[i]){
				System.out.println("book:"+name[i]);
			}else{
				count++;
			}
		if(count==name.length&&(num[count]!=book))	
			 throw new NameException("图书不存在");
       }
}




package library;

public class NameException extends Exception{
public NameException(){
	System.out.println("图书不存在");
}
public NameException(String msg){
	super(msg);
}

}


正在回答

3 回答

异常的位置处理方式有错误,算法错误

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

http://img1.sycdn.imooc.com//55b5a8960001bc5f04760186.jpg


这样的可以吗?可以我就把源代码给你。

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

海上钓鳌客 提问者

其实是异常的处理那里我写错了
2015-10-26 回复 有任何疑惑可以回复我~

我输出的有异常信息,不知道是不是你想要的

http://img1.sycdn.imooc.com//55b512650001270504030260.jpg

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

海上钓鳌客 提问者

我的程序现在也是如此,但是这一步我想让它输出“图书不存在”,这里不知道如何实现
2015-07-27 回复 有任何疑惑可以回复我~
#2

慕田峪9610814 回复 海上钓鳌客 提问者

非用异常输出不可吗?
2015-07-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

个人写的借书系统问题,如果书名或者序号不匹配无法按照要求输出异常信息。求指点如何修改。

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