这篇文章取自我高一时候写的第一篇日记。当时的我家里没有电脑,但我早已坚定了要当程序员的信念。现在搬上来忆苦思甜,自我勉励。没有干劲的时候就想想当年,从别人家下完java教学视频再插到自己家电视上看,每天午休猛啃《java从入门到精通》,利用每周仅45分钟的信息课来艰难的调试自己的代码,最大的愿望就是有一台自己的电脑。回看现在的生活,真是宛若天堂,幸福至极。

由于最简版的加法计算器在用户输入英文字母等会抛出一个java.util.InputMismatchException(输入配错异常)的异常,所以我在源代码里加入了try…catch语句,首次修改如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;
public class a{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int a = 0;
int b = 0;
while(1<2)
{
try
{
a = in.nextInt();
b = in.nextInt();
System.out.println(a+"+"+b+"="+(a+b));
System.out.println(a+"-"+b+"="+(a-b));
}
catch(InputMismatchException ex)
{
System.out.println("输入参数错误");
}
}
}
}

在编译的时候报错:catch(InputMismatchException ex)
第一反应是类未加载,于是修改源代码为(java.util.InputMismatchException ex)
编译后再次报错,经过详细分析后认为需要导入异常类,即:
import java.util.InputMismatchException 或 java.util.*
这一次编译成功,但在进行异常输入测试时命令行会以极快的速度重复打印“输入参数错误”。初步分析结果为:a或b被输入了一个非int的值,重新进行while循环,在try语句发现异常,直接进行catch,构成一个死循环

一周后的追记:
现在死循环的问题被解决了,方法在catch语句体中加入一个in.next()语句,作用是“接收用户输入”。