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

来源:1-9 经验总结

weibo_这都很重要_0

2015-02-25 10:18

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

写回答 关注

4回答

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

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

    weibo_...

    非常感谢!

    2015-02-26 14:01:45

    共 1 条回复 >

  • 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是必须的,不然下次无法输入,这是比较本质的

    慕少8143...

    对~~

    2017-08-07 14:04:55

    共 5 条回复 >

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

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

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题