编译时JAVA最常见的异常

编译时JAVA最常见的错误
学习一种新的编程语言总是一种挑战,因为简单的失误就可以产生错误,对于门外汉来说都是神秘和充满困惑的。如果你不是足够幸运有一个有经验的程序员在旁边看着你并提供指导,排除你代码的故障将是非常令人沮丧的。


    如果你正学习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程序语言的挫折。

 

-------------------------------------------------------------

 日系车名单大全,坚决长期抵制日系车                抵制日货名单大全                   

 毕业后头五年决定你的一生                                   海量Android教程、开发资料和源码

10类最急需IT人才:Java开发者居首                   给将成为“Android高手”的10个建议 

成为Java高手的25个学习目标--非常经典           Android 4.1果冻豆新特性详解 

Java侵权诉讼Google获胜,Android厚积薄发       面试必备:Android笔试总结 

Android高手必须掌握的28大内容和10个建议     Android平台研发人才缺口30万 

Android开发环境安装和配置步骤详细图解        2012国内移动App开发者大调查结果 

Windows 7下搭建android开发环境步骤图解      Android 4.0的30个突出的新特性 

Android高手要经过的6个阶段和6个境界           linux下搭建Android开发环境步骤 

从IT菜鸟变为“IT骨干开发者”的11个建议        程序员编程技术迅速提高的终极攻略 

2012世界各国人均GDP排名,中国超泰国           2012年全国各省平均工资排行 

2012年中国大学高校排行榜(580强排名)      中国各省市面积和人口数量排名 

中国百万开发者大调查:程序员的薪水不错     Java高手需要越过的10座高山

周立功谈嵌入式:我的25年嵌入式生涯           Android和Java语言的异同和关系 

华为中国区手机销量达千万,80%为智能机        谷歌Android碎片化严重

2012年中国各省GDP和人均GDP排名              90后就业“钱景”:IT仍是最佳选择

2012全球城市竞争力500强,69个中国城市上榜   不要做浮躁的软件工程师 

2012年世界500强,79家大陆香港*公司上榜名单 给IT新兵的15个建议 

美国知名科技公司入门级软件工程师的薪水排名  回顾Java经过的风风雨雨 

71道经典Android面试题和答案--重要知识点都涉及到了 

芯片巨头海思和展讯:给中国芯片业带来信心    海量经典Java教程、学习资料和源码