请大神多多指教,有哪里可以更加完善
package bookStroe;
import java.util.Scanner;
public class BS {
public static void main(String[] args){
String[][] book = {{"1","论语"},{"2","数据库"},{"3","建模"}}; //初始化书店的书
while(true) { //无限循环查书
try {
System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书;");
int num=new Scanner(System.in).nextInt();
if(num!=1&&num!=2) { //只有1,2两个选项,输入其他命令均抛出异常
throw new ClassCastException("命令输入错误!请根据提示输入数字命令!");
}
String bName=null; //定义一个空指针
if(num==1) {
System.out.println("图书名称:");
String name=new Scanner(System.in).nextLine();
for(int i=0;i<book.length;i++) {
if(name.equals(book[i][1])) {
bName="book:"+book[i][1]; //有找到书就赋值给先前定义的空指针
break; //停止查书系统
}
}
System.out.println(bName.toString()); //引用,如果bName为空则抛出异常
break; //退出查书系统
}
if(num==2) {
System.out.println("图书序号:");
int mark=new Scanner(System.in).nextInt();
System.out.println("book:"+book[mark-1][1]);
break; //退出查书系统
}
}catch(NullPointerException e) {
System.out.println("图书不存在"); //空指针异常
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("没那么多本书"); //数组溢出异常
}catch(Exception e) {
System.out.println("命令输入错误!请根据提示输入数字命令!"); //其他异常
}
}
}
}