From 884da7aaded1512447fce6928189600d5966b965 Mon Sep 17 00:00:00 2001 From: pveeckhout Date: Tue, 28 Nov 2023 21:38:46 +0100 Subject: [PATCH] #6 - Enhancement of Async Error Handling in Runnable Tasks --- .../io/edpn/backend/util/ConcurrencyUtil.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/io/edpn/backend/util/ConcurrencyUtil.java diff --git a/src/main/java/io/edpn/backend/util/ConcurrencyUtil.java b/src/main/java/io/edpn/backend/util/ConcurrencyUtil.java new file mode 100644 index 0000000..4b95ef3 --- /dev/null +++ b/src/main/java/io/edpn/backend/util/ConcurrencyUtil.java @@ -0,0 +1,21 @@ +package io.edpn.backend.util; + +import java.util.Objects; +import java.util.function.Consumer; + +public class ConcurrencyUtil { + + public static Runnable errorHandlingWrapper(Runnable action, Consumer errorHandler) { + return () -> { + try { + action.run(); + } catch (Throwable e) { + if (Objects.nonNull(errorHandler)) { + errorHandler.accept(e); + } else { + e.printStackTrace(); + } + } + }; + } +}