public void beginCatchBlock(final Type<?> caughtType) { VerifyArgument.notNull(caughtType, "caughtType"); if (_currentExceptionStackCount == 0) { throw Error.notInExceptionBlock(); } if (!Types.Throwable.isAssignableFrom(caughtType)) { throw Error.catchRequiresThrowableType(); } final __ExceptionInfo current = _currentExceptionStack[_currentExceptionStackCount - 1]; // if (current.getCurrentState() == __ExceptionInfo.State_Catch) { // Insert a branch if the previous clause is a Catch. emit(OpCode.GOTO, current.getEndLabel()); // } current.markCatchAddress(offset(), caughtType); }
public void beginCatchBlock(final Type<?> caughtType) { VerifyArgument.notNull(caughtType, "caughtType"); if (_currentExceptionStackCount == 0) { throw Error.notInExceptionBlock(); } if (!Types.Throwable.isAssignableFrom(caughtType)) { throw Error.catchRequiresThrowableType(); } final __ExceptionInfo current = _currentExceptionStack[_currentExceptionStackCount - 1]; // if (current.getCurrentState() == __ExceptionInfo.State_Catch) { // Insert a branch if the previous clause is a Catch. emit(OpCode.GOTO, current.getEndLabel()); // } current.markCatchAddress(offset(), caughtType); }
public void beginCatchBlock(final Type<?> caughtType) { VerifyArgument.notNull(caughtType, "caughtType"); if (_currentExceptionStackCount == 0) { throw Error.notInExceptionBlock(); } if (!Types.Throwable.isAssignableFrom(caughtType)) { throw Error.catchRequiresThrowableType(); } final __ExceptionInfo current = _currentExceptionStack[_currentExceptionStackCount - 1]; // if (current.getCurrentState() == __ExceptionInfo.State_Catch) { // Insert a branch if the previous clause is a Catch. emit(OpCode.GOTO, current.getEndLabel()); // } current.markCatchAddress(offset(), caughtType); }