@Override
  public void actionPerformed(@NotNull AnActionEvent e) {
    final Project project = e.getProject();
    final JavaStackFrame stackFrame = getStackFrame(e);
    if (stackFrame == null || project == null) {
      return;
    }
    final DebuggerContextImpl debuggerContext = DebuggerAction.getDebuggerContext(e.getDataContext());
    final DebugProcessImpl debugProcess = debuggerContext.getDebugProcess();
    if (debugProcess == null) {
      return;
    }

    final StackFrameProxyImpl proxy = stackFrame.getStackFrameProxy();
    final ThreadReferenceProxyImpl thread = proxy.threadProxy();

    debugProcess.getManagerThread().schedule(new DebuggerContextCommandImpl(debuggerContext, thread) {
      @Override
      public void threadAction(@NotNull SuspendContextImpl suspendContext) {
        ApplicationManager.getApplication().invokeLater(
          () -> new XExpressionDialog(project, debugProcess.getXdebugProcess().getEditorsProvider(), "throwExceptionValue",
                                      JavaDebuggerBundle.message("dialog.title.exception.to.throw"), stackFrame.getSourcePosition(), null) {
            @Override
            protected void doOKAction() {
              evaluateAndReturn(project, stackFrame, debugProcess, getExpression(), this);
            }
          }.show());
      }
    });
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)