diff --git a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
index a7b7230..5fa4cf3 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
@@ -583,15 +583,15 @@
       String qualifiedMainClass, Path[] jars, Path[] dexes, List<String> args) throws IOException {
 
     boolean expectedToFail = expectedToFail(testName);
-    String output = ToolHelper.runArtNoVerificationErrors(
-        Arrays.stream(dexes).map(path -> path.toString()).collect(Collectors.toList()),
-        qualifiedMainClass,
-        builder -> {
-          for (String arg : args) {
-            builder.appendProgramArgument(arg);
-          }
-        });
     try {
+      String output = ToolHelper.runArtNoVerificationErrors(
+          Arrays.stream(dexes).map(path -> path.toString()).collect(Collectors.toList()),
+          qualifiedMainClass,
+          builder -> {
+            for (String arg : args) {
+              builder.appendProgramArgument(arg);
+            }
+          });
       if (!skipRunningOnJvm(testName) && !ToolHelper.compareAgaintsGoldenFiles()) {
         ArrayList<String> javaArgs = Lists.newArrayList(args);
         javaArgs.add(0, qualifiedMainClass);
