一个java代码的bug

img


代码需求很简单,输入一个数字并打印出来,如果输入的不是数字,那么就一直循环。实现的方法有很多,偶然间发现这段代码会出现让我难以理解的bug,希望大佬们指点指点
代码如下:
static void read1(){
Scanner scan =new Scanner(System.in);
while(true){
int n;
System.out.print("enter a number:");
try {
n =scan.nextInt();
}catch(InputMismatchException e){
continue;
}
System.out.println(n);
break;
}
}

如果你输入的不是数字,他就会捕获异常继续循环。如果是他就会输出,结束循环

运行结果给出来

你这异常就没捕获对,
还有这不叫java代码的bug,这是人为的bug

是异常就continue跳过本次循环,但不会结束;是数字正常执行走break结束循环