Java Reference
In-Depth Information
Making the assert statement work
. The assert statement may not work in your system. Some
IDEs have a switch that tells whether the assert statement should be allowed.
For example, if your version of DrJava does not allow the assert statement,
select menu
edit
item
preferences
. In the window that opens, click category
Miscellaneous
in the lefthand column and then check the box
Allow assert key-
word in Java 1.4
.
If you are using a command-line window to compile a Java program, then
you need the
-source 1.4
option to enable assertions, as shown below. This is
needed for backward compatibility reasons.
javac -source 1.4 SomeClass.java
assertions
. Examples are preconditions of methods, postconditions of methods,
class invariants, and loop invariants. Java 1.4 has a new statement, the
assert
statement
, which comes in one of two forms:
assert
boolean-expression
;
assert
boolean-expression
:
expression
;
This statement is executed as follows. The
boolean-expression
is evaluated;
if it is
true
, execution of the statement is finished. If it is
false
, an
Assertion-
Error
is thrown, which (for the first form above) prints the following message
and terminates the program:
java.lang.AssertionError:
at Funcs.testPrint(Funcs.java:28)
For the second form, the value of the
expression
is printed as well —it is the
detail message of the thrown
AssertionError
. For example, if this value is
"hey, it is 5"
, then this is printed:
java.lang.AssertionError: hey, it is 5
at Funcs.testPrint(Funcs.java:28)
The assert statement, inserted at judiciously chosen places, can alert you to
misguided beliefs and therefore help you debug your program. For example, sup-
pose you previously wrote the following code:
/**
Put into double field 1 the fahrenheit value for centigrade value in double field 0
*/
public
Object buttonPressed() {
double
b= getDoubleField(0);
setStringField(0, "Centigrade");
setDoubleField(1, TempConvert.FahrFromCent(b));
setStringField(1, "Fahrenheit");
return null
;
}
Figure 14.5:
Method buttonPressed used to test function
FahrFromCent
Search WWH ::
Custom Search