常见的 Java 错误及避免方法
在开发Java软件时可能会遇到许多类型的错误,但大多数是可以避免的。为此我们罗列了最常见的Java编码错误,其中包含代码示例和教程,以帮助大家解决常见的编码问题。
编译器错误
当Java软件代码通过编译器运行时,会创建编译器错误消息。谨记编译器可能会针对一个错误抛出许多错误消息。所以得修复第一个错误并重新编译。这样做可以解决很多问题。
1.“…Expected”
当代码中缺少某些东西时,会发生此错误。通常是因为缺少分号或右括号。
private static double volume(String solidom, double alturam, double areaBasem, double raiom) {double vol; if (solidom.equalsIgnoreCase("esfera"){
vol=(4.0/3)*Math.pi*Math.pow(raiom,3);
} else { if (solidom.equalsIgnoreCase("cilindro") {
vol=Math.pi*Math.pow(raiom,2)*alturam;
} else {
vol=(1.0/3)*Math.pi*Math.pow(raiom,2)*alturam;
}
} return vol;
}
通常,此错误消息不会精确确定问题的确切位置。为了找到错误:
- 确保所有的左括号都有一个对应的右括号。
- 在查看指示的Java代码行之前顺便看看行。此Java软件错误没有被编译器注意到,直到在代码中更深层次地查看。
- 有时一个字符,如一个左括号,并不应该放在Java代码的原先位置。所以开发人员没有放置一个右括号来平衡括号。
点击查看关于错误的圆括号会如何导致错误(@StackOverflow)的示例。
2.“Unclosed String Literal”
如果字符串文字结束时没有引号的话,会创建“Unclosed String Literal”的错误消息,并且消息将显示在与错误相同的行上。(@DreamInCode)Literal是值的源代码。
public abstract class NFLPlayersReference { private static Runningback[] nflplayersreference; private static Quarterback[] players; private static WideReceiver[] nflplayers; public static void main(String args[]){
Runningback r = new Runningback("Thomlinsion");
Quarterback q = new Quarterback("Tom Brady");
WideReceiver w = new WideReceiver("Steve Smith");
NFLPlayersReference[] NFLPlayersReference;
Run();// {
NFLPlayersReference = new NFLPlayersReference [3];
nflplayersreference[0] = r;
players[1] = q;
nflplayers[2] = w; for ( int i = 0; i < nflplayersreference.length; i++ ) {
System.out.println("My name is " + " nflplayersreference[i].getName());
nflplayersreference[i].run();
nflplayersreference[i].run();
nflplayersreference[i].run();
System.out.println("NFL offensive threats have great running abilities!");
}
}
private static void Run() {
System.out.println(&#