public void execute(final RunnableEx runnable) {
        threadPool.execute(() -> {
            try {
                runnable.run();
            } catch (Exception e) {
                Object event;
                try {
                    event = failureEventConstructor.newInstance(e);
                } catch (Exception e1) {
                    eventBus.getLogger().log(Level.SEVERE, "Original exception:", e);
                    throw new RuntimeException("Could not create failure event", e1);
                }
                if (event instanceof HasExecutionScope) {
                    ((HasExecutionScope) event).setExecutionScope(scope);
                }
                eventBus.post(event);
            }
        });
    }
Posts an failure event if the given {@link RunnableEx} throws an Exception.
EventBus/src/org/greenrobot/eventbus/util/AsyncExecutor.java