final void onReturnExceptional(EventContext context, VirtualFrame frame, Throwable exception) { try { innerOnReturnExceptional(context, frame, exception); } catch (Throwable t) { if (!seenException) { CompilerDirectives.transferToInterpreterAndInvalidate(); seenException = true; } if (binding.isLanguageBinding()) { exception.addSuppressed(t); } else { CompilerDirectives.transferToInterpreter(); failEventForInstrumentation(binding, "onReturnExceptional", t); } } if (next != null) { next.onReturnExceptional(context, frame, exception); } }