@Nonnull
	public static Runnable wrap(@Nonnull Runnable action) {
		return () -> {
			try {
				action.run();
			} catch (Throwable t) {
				logger.error("Unhandled exception on thread '{}'", Thread.currentThread().getName(), t);
			}
		};
	}
Wrap action to handle error logging.
<br>
<b>IMPORTANT:</b> This does <i>not work</i> with {@link ThreadFactory} for all thread-pool implementations.
To support any {@link ExecutorService} type, instead wrap it with {@link ExecutorServiceDelegate} or
{@link ScheduledExecutorServiceDelegate} which will delegate passed {@link Runnable} tasks here.

@param action
		Action to run.

@return Wrapper runnable.
recaf-core/src/main/java/software/coley/recaf/util/threading/ThreadUtil.java