您现在的位置: 弘智首页 > JAVA > JAVA环境与工具 >

编译时JAVA最常见的错误

时间:2012-10-30 来源:弘智教育 点击: 次
学习一种新的编程语言总是一种挑战,因为简单的失误就可以产生错误,对于门外汉来说都是神秘和充满困惑的。如果你不是足够幸运有一个有经验的程序员在旁边 看着你并提供指导,排除你代码的故障将是非常令人沮丧的。    如果你正学习Java语 言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行时错误,这是指错误 发生在你成功地编译了程序但不能运行并且没有产生错误。当然,在你遇到一个运行时错误之前,你的代码必须首先能够编译,所以在这里我们将研究最常见的开发 者可能遇到的编译时错误的原因。
    最常见的编译时错误
    我们将使用下面的代码作为一个Java示例类作为讨论:
    public class Game {
    public static void main(String args[]) {
    System.out.println("If I choose Paper,");
    System.out.println("And you choose Scissors,");
    System.out.println("Then I win, and you lose!");
    }
    }
    Java文件错误的命名方式--Java文件的名称必须和代码中相关的公共类完全匹配。因此,如果你的代码包含一个公共类"Game",Java文件必须 命名为"Game.Java",而不能命名为"game.Java",或者是"GAME.Java",再或者是"MyGame.Java".该文件的名称 和公共类的名称在拼写和大小写上都必须完全匹配。
    代码错误的大小写--Java对大小写敏感,因此"public"与"Public"或"puBliC"都是不相同的。Java新手往往利用首字母大写, 反之亦然,由于大小写错误导致他们编写的代码编译失败。为了进一步复杂化这个问题,编译时错误信息由于大写问题往往是隐蔽和没有帮助的。例如,如果你把主 方法中的声明"public static and void"第一个字母大写,你会得到以下错误消息,说需要一个分号,这真的不是问题的根本:
    C:\_jdk1.7\bin>Javac Game.Java
    Game.Java:3: error: ';' expected
    Public Static Void main (String args[]) {
    1 error
    错误匹配的括号--你可以看到你的代码中的每一个开着的括弧,它可能是一个方括号,大括弧或圆括号,你需要一个与之匹配的关闭的括弧。有时,一个程序员会 忘记关闭方法的括弧,或者他们会记得关闭一个方法的括弧,但是忘记关闭类的括弧。不管它是如何发生的,如果括号不匹配,你将会一直得到一个编译时错误。
    例如,一个Java类的最后一个大括弧不关闭,试图编译代码将产生下列编译时错误:
    C:\_jdk1.7\bin>Javac Game.Java
    Game.Java:11: error: reached end of file while parsing
    }
    1 error
    就我个人而言,每当我创建一个新的方法或类时,在敲入开始的括弧之后,我总是敲一些回车,然后添加一个结束的封闭括号。我只有在括号匹配的情况下我才会开 始类主体或方法的代码编码。这样,你的括号会总是匹配状态,你样就可以在编写类或者方法代码时,不用担心将来的某个时刻需要关闭括号。
    漏掉分号--人们越来越熟悉的Java另一个常见编码错误是漏掉需要的分号。作为一项规则,每一个语句必须以分号结束。不幸的是,这个规则有时可能会像它的作用一样另人费解,尤其是当你有一个很难弄清楚它到底是不是一个语句的时候。
    例如,在一个方法的主体里面,所有的"system.out.print"调用都以分号结束。如果我们在一个方法体中忘记给"system.out"加上分号,我们将会得到一个编译时错误消息,就像下面一样:
    C:\_jdk1.7\bin>Javac Game.Java
    Game.Java:7: error: ';' expected
    System.out.println("Then I win and you lose!")
    1 error
    容易混淆的部分是由于在Java中并不是每一行你写的代码就是一个语句。例如,类声明是不被视为一个语句,所以它不跟分号。同样,一个方法声明是不被视为 一个语句的,所以它也不跟分号。要想容易识别哪个是一个语句哪个不是一个语句需要一定的练习,这也需要一定的时间,但请放心,如果你确实有一个语句,它就 必须跟着一个分号,否则编译器会开始报错。
    随着时间的推移,任何编程语言的细微差别最终都会成为司空见惯的事,而Java众所周知的请求和市场上其他编程语言没什么区别。如果你是Java新手,记 住这四个小提示,如果你碰到一个编译时错误,看看是不是Java文件的命名方式产生的问题,代码中单词和字母的大小写情况,不匹配的括号和或漏掉分号。保 持这四个问题点在你的脑海里将帮助你解决Java代码故障排除问题,并希望减轻一些学习Java程序语言的挫折。
弘智主页 | 弘智介绍 | 培训课程 | XML地图