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

来源:1-9 经验总结

Goldberg

2016-02-19 13:34

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

写回答 关注

2回答

  • 只是不想平凡
    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();

    }

    }

    }


    Goldbe...

    晓得了 这样是方便很多,十分感谢

    2016-02-19 15:27:33

    共 1 条回复 >

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

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

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题