PyDebugValue (@NlsSafe String expression, boolean pooledThread, boolean modifier) { try { PyDebugValue value = myFrameAccessor.evaluate(expression, false, true); if (value == null || value.isErrorOnEval()) { Runnable runnable = () -> setError(value != null ? value.getValue() : PyBundle.message("debugger.data.view.failed.to.evaluate.expression", expression), modifier); if (pooledThread) { ApplicationManager.getApplication().invokeLater(runnable); } else { runnable.run(); } return null; } return value; } catch (PyDebuggerException e) { Runnable runnable = () -> setError(e.getTracebackError(), modifier); //NON-NLS if (pooledThread) { ApplicationManager.getApplication().invokeLater(runnable); } else { runnable.run(); } return null; } }