1.8 处理语法错误
如果没有成功输入、编译和运行上面的程序,就会意识到在将代码输入到计算机时,很容易不小心错误地输入一些东西。幸运的是,若向程序错误地输入一些东西,编译器会在试图编译时报告语法错误(syntax error)的信息。无论写了什么代码,Java编译器都试图理解源代码。因此,报告的错误可能无法反映问题的实际原因。例如,在前述程序中,不小心在main()后缺少了左花括号会引起编译器报以下两条错误。
明显,第一条错误消息完全错误,因为缺少的不是分号而是花括号。第二条错误消息本质上并没有错误,但造成这种结果的原因是缺少花括号导致的语法误解,编译器试图使程序后续的部分仍然有意义。
这些讨论试图说明当程序包括语法错误时,不应该只看到编译器表面的错误消息。消息也许有误导性。也许需要多加猜想才能找到真实原因。另外,观察错误行发生的前几行。有时在实际的错误发生点后几行才会汇报错误。