问答详情
源自:1-9 经验总结

一般catch到异常后,需要回滚到之前的程序。常用的方法有些啥啊?

只能想到 while break; 和 go to 有没有比较精妙的方法啊?求分享

提问者:Goldberg 2016-02-19 13:34

个回答

  • 只是不想平凡
    2016-02-19 13:59:56
    已采纳

    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();

    }

    }

    }


  • Emma0412
    2016-03-02 14:48:50

    我觉得我很多基础,还是不扎实~