Exception is the replacement for the goto statement. It also gives you a complementary comefrom statement, something that goto seriously lacked.

Oh, btw:

try {
   ..
} catch (.... e) {
   done = true;
} ... {
  ...
} finally {
   done = false
}

Since finally blocks are run ALL THE TIME, the "done=true" statement will have NO effect whatsoever, as the finally statement sets it back to false.