Your first question, your sample code does look incomplete,
try the program below which does the same thing, which gives you the output : 1 2 3 4, not a compile time error.
Reason: x is always =0, when i=1 , the condition matches and "continue loop" is executed, continue statement always breaks out of the present iteration and control reaches back to the label statement pointed by Continue. Hence,increments to the next iteration.
Here, "Continue loop" breaks out of the inner loop j , never reaching the print statement and increments the value of i=2.
Prints the value and "continues" the "loop" or the label statement.
When i =4 it follows the same procedure and i is incremented to 5. Now the outer loop has reached the limit to the program exits out, never reching Print j statement.
-Its ok for code to not do anything sometimes as long as the syntax is ok. Generally you would not code that way.
Here's the code:
public class testclass
static int x =0;
public static void main(String args)
2. After finally statement in your eg. o/p will be 134. Program flow does continue after the finally statement. JLS has some good titbits on Exception handling , which you can refer to !
I hope my explanations help you.