diff --git a/.gitignore b/.gitignore index de375750..d8407bcb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ build git-hash *.tar.gz .*.swp +.DS_Store # Gradle .gradle/ diff --git a/src/main/java/modbat/mbt/NoTransitionException.java b/src/main/java/modbat/mbt/NoTransitionException.java new file mode 100644 index 00000000..5e73c49a --- /dev/null +++ b/src/main/java/modbat/mbt/NoTransitionException.java @@ -0,0 +1,7 @@ +package modbat.mbt; + +class NoTransitionsException extends Exception { + NoTransitionsException(String message) { + super(message); + } +} diff --git a/src/main/scala/modbat/mbt/MBT.scala b/src/main/scala/modbat/mbt/MBT.scala index b9740b5b..5baac448 100644 --- a/src/main/scala/modbat/mbt/MBT.scala +++ b/src/main/scala/modbat/mbt/MBT.scala @@ -213,7 +213,7 @@ object MBT { } catch { case e: ClassNotFoundException => { Log.error("Class \"" + className + "\" not found.") - System.exit(1) + throw e } } } @@ -301,12 +301,13 @@ object MBT { // if modelInstance == null: initial model def launch(modelInstance: Model): MBT = { val model = mkModel(modelInstance) + if (Transition.pendingTransitions.isEmpty) { Log.error("Model " + model.getClass.getName + " has no transitions.") Log.error("Make sure at least one transition exists of type") Log.error(" \"a\" -> \"b\" := { code } // or, for an empty transition:") Log.error(" \"a\" -> \"b\" := skip") - System.exit(1) + throw new NoTransitionsException(model.getClass.getName) } val inst = new MBT(model, Transition.getTransitions) Transition.clear