From 80c9d458b47ed5ce710326767830c26e25cc912b Mon Sep 17 00:00:00 2001 From: Johannes Wirth Date: Mon, 6 Oct 2025 18:33:36 +0200 Subject: [PATCH] improve exception handling --- toolflow/src/main/scala/com/minres/tgc/hammer/Main.scala | 6 +++++- .../scala/com/minres/tgc/hammer/util/AssertException.scala | 3 +++ .../src/main/scala/com/minres/tgc/hammer/util/Logging.scala | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 toolflow/src/main/scala/com/minres/tgc/hammer/util/AssertException.scala diff --git a/toolflow/src/main/scala/com/minres/tgc/hammer/Main.scala b/toolflow/src/main/scala/com/minres/tgc/hammer/Main.scala index 4b40a99..373b4ec 100644 --- a/toolflow/src/main/scala/com/minres/tgc/hammer/Main.scala +++ b/toolflow/src/main/scala/com/minres/tgc/hammer/Main.scala @@ -2,6 +2,7 @@ package com.minres.tgc.hammer import ch.qos.logback.classic.Level import com.minres.tgc.hammer.cli.{HammerConf, MySubcommand} +import com.minres.tgc.hammer.util.AssertException import com.typesafe.scalalogging.Logger import org.slf4j.LoggerFactory @@ -36,8 +37,11 @@ object Main { try { tasks.foreach(_.run()) } catch { - case e: Exception => + case e: AssertException => logger.error(s"Error during task execution, see above!") + case e: Exception => + logger.error(s"General exception ${e.getMessage}") + e.printStackTrace() } case _ => logger.error(s"Found no subcommand, see help below") diff --git a/toolflow/src/main/scala/com/minres/tgc/hammer/util/AssertException.scala b/toolflow/src/main/scala/com/minres/tgc/hammer/util/AssertException.scala new file mode 100644 index 0000000..0e22139 --- /dev/null +++ b/toolflow/src/main/scala/com/minres/tgc/hammer/util/AssertException.scala @@ -0,0 +1,3 @@ +package com.minres.tgc.hammer.util + +case class AssertException() extends Exception diff --git a/toolflow/src/main/scala/com/minres/tgc/hammer/util/Logging.scala b/toolflow/src/main/scala/com/minres/tgc/hammer/util/Logging.scala index 283fbb6..72d454e 100644 --- a/toolflow/src/main/scala/com/minres/tgc/hammer/util/Logging.scala +++ b/toolflow/src/main/scala/com/minres/tgc/hammer/util/Logging.scala @@ -10,7 +10,7 @@ trait Logging[T: ClassTag] { protected def assert(boolean: Boolean, msg: String): Unit = { if (!boolean) { log.error(msg) - throw new Exception() + throw AssertException() } } }