标签:交流 选择 pac 技术分享 log ref one welcome line
package exc; //输入错误异常 public class ErrorException extends Exception { public ErrorException(){ System.out.println("命令输入错误!请根据提示输入数字命令!"); }; } package exc; //书籍不存在异常 public class NoException extends Exception { //两个含参构造方法,第一个是‘图书名称不存在’异常 public NoException(String name){ System.out.println("图书"+name+"不存在"); } //第二个是‘图书序号不存在’异常 public NoException(int num){ System.out.println("图书序号为"+num+"的书不存在"); } } package exc; //建造的书籍类 public class Book { String name; int num; public Book(){}; //含参的构造方法 用来建造带有名字和序号的书籍类 public Book(String name,int num){ this.name=name; this.num=num; } } package exc; import java.util.Scanner; public class Test { static Test qwer=new Test(); Scanner reader=new Scanner(System.in); //构建书籍类数组 Book[] books={new Book("高数", 1), new Book("语文", 2), new Book("英语", 3), new Book("物理", 4), new Book("化学", 5), new Book("生物", 6) }; public static void main(String[] args) throws NoException { // TODO Auto-generated method stub qwer.welcome();//提示欢迎 qwer.xunhuan(); //调用循环函数,当出现错误时一直运行程序,直到找到正确的书籍 } //程序运行的主体 public void inputWelcome(int a) throws ErrorException, NoException{ if (a==1) { System.out.println("输入图书名称" );//采用名称查找方法 String b=reader.next(); qwer.corrcetName(b);//用名称确认方法查找是否存在对应书籍 }else if (a==2) { System.out.println("输入图书序号");//采用序号查找方法 int c=reader.nextInt(); qwer.corrcetNum(c);//用序号确认方法查找是否存在对应书籍 }else { throw new ErrorException();//抛出输入错误异常 } } //主干程序,完成框架 public void retime() throws NoException{ int a=reader.nextInt(); try { qwer.inputWelcome(a); } catch (ErrorException e) { // TODO Auto-generated catch block qwer.welcome(); qwer.retime(); } } //循环函数,当出现异常时,捕获输入错误异常,并继续执行 public void xunhuan(){ try { qwer.retime(); } catch (NoException e) {//捕获到输入错误异常时,继续执行程序,重新查找书籍 // TODO Auto-generated catch block System.out.println("输入有误,请重新选择"); qwer.welcome(); qwer.xunhuan(); } } //查找输入序号时的确认函数 public void corrcetNum(int b) throws NoException{ int i=0; //如果输入的序号大于数组长度或者为复数,则抛出输入错误异常 if (b>books.length||b<0) { throw new NoException(b); } //数组一个个遍历,确认是否存在此序号书籍 for (; i < books.length; i++) { if(books[i].num==b){ System.out.println("book:"+books[i].name); System.out.println("恭喜您找到自己需要的书籍了!"); break; }; } } //查找输入名称时的确认函数 public void corrcetName(String b) throws NoException{ int i = 0; //数组一个个遍历,确认是否存在此名称书籍 for (; i < books.length;i++) { if(books[i].name.equals(b)){ System.out.println("book:"+books[i].name); System.out.println("恭喜您找到自己需要的书籍了!"); break; }; } //当遍历完整个程序,还是没有找到输入名称书籍,则抛出书籍不存在异常 if (i==books.length) { throw new NoException(b); } } //欢迎界面 public void welcome(){ System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找名称"); } }
标签:交流 选择 pac 技术分享 log ref one welcome line
原文地址:http://www.cnblogs.com/blackiesong/p/6035939.html