try catch问题
int input=0;
int[] a =null;
int n = 0, k = 0;// 插入的数据及插入的位置
while (true) {
dm.notice();
System.out.println("请输入对应的数字进行操作:");
try {
input = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("输入的数据格式有误,不能有非数字!");
}
if (input == 0) {
System.out.println("退出程序!");
break;
}
为什么没有try catch语句时,input语句未赋初始值,下面的if (input == 0) 不会报错,而有了try catch语句时input语句未赋初始值,下面的if (input == 0) 就会报错
8
收起
正在回答
2回答
sc.nextInt()是非检查异常(运行时异常),编译时不检查。当你出现异常时,程序就报异常了,因而不会继续往下走,不会出现没赋初始值就使用的情况
而你主动去捕获异常,try到后进入catch语句接着往后执行,这样就会出现未被赋初始值就使用的情况。
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星