diff --git a/src/main/java/org/graphwalker/java/test/Executor.java b/src/main/java/org/graphwalker/java/test/Executor.java
index <HASH>..<HASH> 100644
--- a/src/main/java/org/graphwalker/java/test/Executor.java
+++ b/src/main/java/org/graphwalker/java/test/Executor.java
@@ -148,12 +148,12 @@ public final class Executor {
                             for (ExecutionContext context: machine.getExecutionContexts()) {
                                 AnnotationUtils.execute(BeforeExecution.class, implementations.get(context));
                             }
-                            try {
-                                while (machine.hasNextStep()) {
+                            while (machine.hasNextStep()) {
+                                try {
                                     machine.getNextStep();
+                                } catch (Throwable t) {
+                                    t.printStackTrace();
                                 }
-                            } catch (Throwable t) {
-                                t.printStackTrace();
                             }
                             for (ExecutionContext context: machine.getExecutionContexts()) {
                                 AnnotationUtils.execute(AfterExecution.class, implementations.get(context));
Execute other contexts in the same machine if a context fails