异常问题,求帮忙

来源:8-1 什么是类和对象

王明晓

2016-08-04 23:10

public int selectServer(){

int choose=0;

try{

choose = input.nextInt();  

if(choose<1||choose>6)

throw new Exception();

return choose;

} catch (InputMismatchException e){

System.out.println("输入格式不正确,请重新正确数字:");

input.nextLine();

selectServer();

} catch (Exception e) {

System.out.println("请输入正确数字(1~6):");

input.nextLine();

selectServer();

}

return choose;

}

第一次输入错误抛出异常之后,重新输入正确的数但是返回值不正确

写回答 关注

5回答

  • 程序猿天璇
    2016-10-05 16:06:00

    public static void selectServer(){
    int choose=0;
    input = new Scanner(System.in);
    try{
    choose = input.nextInt(); 
    if(choose<1||choose>6){
    throw new Exception();
    }
    System.out.println("final =" + choose);
    } catch (InputMismatchException e){
    System.out.println("输入格式不正确,请重新正确数字:");
    input.nextLine();
    selectServer();
    } catch (Exception e) {
    System.out.println("请输入正确数字(1~6):");
    input.nextLine();
    selectServer();
    }

  • 小强死了吗
    2016-08-16 20:42:10

    具体参考线的代码

    public static void selectServer(){
    int choose=0;
    input = new Scanner(System.in);
    try{
    choose = input.nextInt();  
    if(choose<1||choose>6){
    throw new Exception();
    } 
    System.out.println("final =" + choose);
    } catch (InputMismatchException e){
    System.out.println("输入格式不正确,请重新正确数字:");
    input.nextLine();
    selectServer();
    } catch (Exception e) {
    System.out.println("请输入正确数字(1~6):");
    input.nextLine();
    selectServer();
    }
    
    }


  • 小强死了吗
    2016-08-05 10:06:20

    因为你输入错误数据的时候,直接去selectServer(),没有 结束当前的线程,后面还有return choose,所有你第一次输入的数据会在第二次打印出来

    王明晓

    要怎么才能结束当前线程啊

    2016-08-05 17:35:30

    共 1 条回复 >

  • Start_出发
    2016-08-05 09:53:13

    这个函数,你每次出错之后,都输入一个数字,然后在重新执行selectServer(),又把choose置0 ,所以,,,,,你可以把那句话去掉试试

    ps:新手,懂得不多。

    王明晓

    但是重新执行selectServer(),choose重置为0之后会继续让控制台输入一个choose给它赋值,应该会覆盖啊

    2016-08-05 17:34:22

    共 1 条回复 >

  • John_Skeet
    2016-08-05 09:52:18

    666


Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530696 学习 · 6091 问题

查看课程

相似问题