一般catch到异常后,需要回滚到之前的程序。常用的方法有些啥啊?
只能想到 while break; 和 go to 有没有比较精妙的方法啊?求分享
只能想到 while break; 和 go to 有没有比较精妙的方法啊?求分享
2016-02-19
package com.Exception;
import java.*;
import java.util.Scanner;
public class Library {
public void library(){
System.out.println("输入命令:1。按照名称查找图书;2.按照序号查找图书");
try{
Scanner input=new Scanner(System.in);
int a=input.nextInt();
if(a==1){
library1();
}else if(a==2){
library2();
}else{
System.out.println("命令输入错误,请根据提示输入数字命令!(1或2)");
library();//异常处理,回滚重新输入
}
}catch(Exception e){
System.out.println("命令输入错误,请根据提示输入数字命令!");
library();
}
}
public void library1(){
System.out.println("输入图书名称:");
try{
Scanner input=new Scanner(System.in);
String name=input.next();
for(int i=0;i<Books.book.length;i++){
if((Books.book[i].getName()).equals(name)){
System.out.println("book:"+name);
break;
}
}
}catch(Exception e){
System.out.println("图书不存在!");
library();
}
}
public void library2(){
System.out.println("输入图书序号:");
try{
Scanner input=new Scanner(System.in);
int num=input.nextInt();
for(int i=0;i<Books.book.length;i++){
if((Books.book[i].getNum())==(num)){
System.out.println("book:"+Books.book[i].getName());
break;
}
}
}catch(Exception e){
System.out.println("图书不存在!");
library();
}
}
}
举报