HANDLE_OPCODE(OP_THROW /*vAA*/) { Object* obj; /* * We don't create an exception here, but the process of searching * for a catch block can do class lookups and throw exceptions. * We need to update the saved PC. */ EXPORT_PC(); vsrc1 = INST_AA(inst); ILOGV("|throw v%d (%p)", vsrc1, (void*)GET_REGISTER(vsrc1)); obj = (Object*) GET_REGISTER(vsrc1); if (!checkForNull(obj)) { /* will throw a null pointer exception */ LOGVV("Bad exception\n"); } else { /* use the requested exception */ dvmSetException(self, obj); } GOTO_exceptionThrown(); } OP_END