Java 常見的49個錯誤及避免方法!——1

  • 編譯器錯誤

當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("Not yet implemented"); } }

通常。這種情況發生在:

字符串文字不以引號結尾。這很容易糾正,加上所需的引號,閉合字符串文字即可。

字符串文字擴展超過一行。長字符串文字可以分解成字符串文字,並加上加號(“+”)。

作為字符串文字一部分的引號不通過反斜槓(“”)進行轉義。

點擊閱讀關於Java軟件錯誤消息Unclosed String Literal的討論。(@Quora)

  • 3.“Illegal Start of an Expression”

出現“Illegal Start of an Expression”錯誤的原因有很多。因此名列不太有用的錯誤消息之一。有些開發者甚至認為這是由壞的代碼造成的。

通常,創建表達式是為了生成新的值或為變量分配值。編譯器期望找到表達式,但因為語法不符合預期而找不到表達式。(@StackOverflow)在這些語句中就可以發現此錯誤。

} // ADD IT HEREpublic void newShape(String shape) { switch (shape) { case "Line":Shape line = new Line(startX, startY, endX, endY);shapes.add(line); break; case "Oval":Shape oval = new Oval(startX, startY, endX, endY);shapes.add(oval); break; case "Rectangle":Shape rectangle = new Rectangle(startX, startY, endX, endY);shapes.add(rectangle); break; default:System.out.println("ERROR. Check logic.");}}} // REMOVE IT FROM HERE}

點擊瀏覽關於如何排除“Illegal Start of an Expression”錯誤的討論。(@StackOverflow)

Java 常見的49個錯誤及避免方法!——1

java


分享到:


相關文章: