<< Chapter < Page | Chapter >> Page > |
Some errors are caused by violations of the syntax of Java. Although they are easy to understand, there is no easy way to find the exact causeof such errors except by checking the code around the location of the error character by character looking for the syntax error.
The syntax of Java is very specific about the required punctuation. This error occurs, for example, if you forget a semicolonat the end of a statement or don't balance parentheses:
if (i > j // Error, unbalanced parentheses
max = i // Error, missing semicolonelse
max = j;
Unfortunately, this syntax error is not necessarily caught precisely at the point of the mistake so you must carefully check the preceding characters inthe line or even in a previous line in order to find the problem.
Eclipse:
Syntax error, insert ") Statement" to complete IfStatement
Syntax error, insert ";" to complete Statement
Eclipse is more informative as to the precise syntax error encountered.
String literals must be enclosed in quotation marks.
A
literal is a source-code representation of a value; most literals are of primitive
types like
int
or
char
, but there are also literals of type
String
and the literal
null
of any reference type. This error occurs if you fail
to terminate the literal with quotation marks. Fortunately, the syntax of Javarequires that a string literal appear entirely on one line so the error message
appears on the same line as the mistake. If you need a string literal that islonger than a single line, create two or more literals and concatenate them
with
+
:
String longString =
"This is first half of a long string " + "and this is the second half.";
Eclipse: String literal is not properly closed by a double-quote In Eclipse you can write a string literal of arbitrary length and the environment
will break the string and insert the
+
automatically.
Most programming constructs are either statements or expressions. This error occurs when an expression is expected but not found. In Java, an assignment statement is considered to be an expression which returns a value , so errors concerning expressions also apply to assignment statements. The value of an assignment statement considered as an expressionis the value of the expression on the right-hand side that is assigned to the variable on the left-hand side. Examples:
if
-statement:
if (i > j) ) // Error, extra parenthesis
max = i;
Eclipse: Syntax error on token ")", delete this token
The syntax of a
programming language is defined in terms of
tokens consisting of one or
more characters. Identifiers and reserved keywords are tokens as are singlecharacters like
+
and sequences of characters like
!=
. Eclipse diagnoses this as a simple syntax error and does not mention expressions.max = ; // Error, missing right-hand side
Eclipse: Syntax error on token "=", Expression expected after this token Notification Switch
Would you like to follow the 'Compile and runtime errors in java' conversation and receive update notifications?