try-catch捕捉异常重新输入疑问
来源:1-1 综合案例需求
hor5
2022-08-02 15:45:31
问题描述:
老师,您好!try-catch捕捉数据类型不符的异常,catch里处理错误重新输入为什么不能用nextInt()方法而是next()方法?而我要求输入的数据类型是整型int又不是字符串string。另外还有一点疑问就是为什么重新调用Scanner对象不需要赋给变量?否则程序怎么指定该变量重新输入判定。
相关截图:
1回答
好帮手慕小黑
2022-08-02
同学你好,当Scanner接收到数据时,会对数据进行验证,如果数据类型接收不匹配,会直接抛出异常而不处理该数据,并且该数据是不会被内存所丢弃,会一直保存到内存中,直到程序运行结束,才会被内存丢弃,或者该数据被其他方法所接收从而消耗掉,而sc.next方法会接收到String类型的数据,即任何数据都会被接收,并且不会报错。
综上所述myScanner.next();只是用来消耗数据的,同学可以使用nextInt方法重新输入。
祝学习愉快!
相似问题