In the following code, statement 'System.out.println("i="+i);' will never be reached. This could be identified during compilation by compiler and it should give 'Unreachable error" Why this is not happening?
"Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world."
The javac compiler does not evaluate expressions looking for exceptions. For example, even if the expression were simply 5/0, the compiler will not assume that an exception will occur.
In addition, the Java compiler only looks at method headers, not method imlementations or javadoc. So javac will not know that Math.random() is always less than 1 and (int)Math.random() is always zero. [ December 06, 2004: Message edited by: Mike Gershman ]