From dd5a6b24fcd69d2907d4801bda226a5c8212308c Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Wed, 8 Jan 2020 03:56:13 -0500 Subject: [PATCH] more error handling options --- src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java | 4 +++- src/main/java/org/cobbzilla/util/main/BaseMain.java | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java b/src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java index 830aad2..252a9ea 100644 --- a/src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java +++ b/src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java @@ -68,7 +68,9 @@ public class ZillaRuntime { public interface ExceptionRunnable { void handle(Exception e); } - public static final ExceptionRunnable DEFAULT_EX_RUNNABLE = e -> log.error("Error: " + e); + public static final ExceptionRunnable DEFAULT_EX_RUNNABLE = e -> { + log.error("Error: " + e); + }; public static ExceptionRunnable exceptionRunnable (Class[] fatalExceptionClasses) { return e -> { diff --git a/src/main/java/org/cobbzilla/util/main/BaseMain.java b/src/main/java/org/cobbzilla/util/main/BaseMain.java index b8958b0..3a160d8 100644 --- a/src/main/java/org/cobbzilla/util/main/BaseMain.java +++ b/src/main/java/org/cobbzilla/util/main/BaseMain.java @@ -24,8 +24,16 @@ public abstract class BaseMain { public void runOrDie () { try { run(); } catch (Exception e) { die("runOrDie: "+e, e); } } + public void runOrDie (ZillaRuntime.ExceptionRunnable errorHandler) { + try { run(); } catch (Exception e) { errorHandler.handle(e); } + } + public Thread runInBackground () { return background(this::runOrDie); } + public Thread runInBackground (ZillaRuntime.ExceptionRunnable errorHandler) { + return background(() -> runOrDie(errorHandler)); + } + @Getter private String[] args; public void setArgs(String[] args) throws CmdLineException { this.args = args;