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

老师,在catch语句中为什么又创建一个console = new Scanner(System.in);?

private static int inputCommand(){

int command;

try {

command = console.nextInt();

return command;

} catch (Exception e) {

console = new Scanner(System.in);

return -1;

}

}

老师,在catch语句中为什么又创建一个console = new Scanner(System.in);?

提问者:weibo_这都很重要_0 2015-02-25 10:18

个回答

  • 康振宁
    2015-02-26 11:46:03
    已采纳

    这个是,当程序出现异常的时候,将异常捕获后,会继续执行,而不至于出现异常之后,就让程序死掉了

  • happygl16
    2016-01-26 12:35:10

    为甚要好给控制台编程一个输入常量啊

    private static Scanner console = new Scanner(System.in);

  • 小龙666
    2015-08-13 10:36:58

    从scanner的原理说了,scanner在要求用户输入的时候,其实是在内存中占用一段内存用于用户输入,你这里,这段内存能存储int类型的数据,而其他类型的就会抛出异常,然而,我们用console.nextInt()调用没把该段内存中的东西提出来,输入字符时,因为现在存入的是字符,提取不出来,他就会一直占用这段内存,导致我们二次输入时,就不会再要求用户输入了,他会继续试图调用该段内存数值,也就一直报错,所有这个new是必须的,不然下次无法输入,这是比较本质的

  • 聆听你幸福的声音
    2015-05-07 15:00:33

    不懂。。就算为了继续执行干嘛还要重新定义输入,还是console=input.nextInt()不行么