try {
bodyNode.interpret(runtime,context, self, aBlock);
break loop;
} catch (RaiseException re) {
if (runtime.getLocalJumpError().isInstance(re.getException())) {
RubyLocalJumpError jumpError = (RubyLocalJumpError)re.getException();
IRubyObject reason = jumpError.reason();
// admittedly inefficient
if (reason.asJavaString().equals("break")) {
return jumpError.exit_value();
} else if (reason.asJavaString().equals("next")) {
break loop;
} else if (reason.asJavaString().equals("redo")) {
continue;
}