Rework error reporting of command builders

- Ensure that errors are reported through DiagnosticHandler.
- Remove declared exceptions but from build().
- Rework constructors to ensure a Reporter is always available.

Bug: 67731703
Change-Id: I1813eed653106f228d8a468cb9a60f63fee418fa
diff --git a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8Compiler.java b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8Compiler.java
index 5d19bc8..7842a6a 100644
--- a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8Compiler.java
+++ b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8Compiler.java
@@ -4,7 +4,6 @@
 
 package com.android.tools.apiusagesample;
 
-import com.android.tools.r8.CompilationException;
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.D8;
 import com.android.tools.r8.D8Command;
@@ -110,7 +109,7 @@
   }
 
   private void merge(Path outputDir, Path mainDexClasses,
-      List<Path> toMerge) throws IOException, CompilationException, CompilationFailedException {
+      List<Path> toMerge) throws IOException, CompilationFailedException {
     D8Command.Builder merger = D8Command.builder();
     merger.setEnableDesugaring(false);