summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2016-02-17 13:34:19 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-02-17 13:34:19 +0000
commit76aa4cd93590bcd41efe5c5b7858b2e5cf0d8355 (patch)
tree42151a381b9a443e82be8d280a6b04891c351d4f
parentd317cc3a99cf4a943877d0e0f22781829e4edd8f (diff)
parentbd156605a787bbbb5524b6b25254b37a67e6dd7f (diff)
downloaddalvik-76aa4cd93590bcd41efe5c5b7858b2e5cf0d8355.tar.gz
Merge "Improve dx error handling"
-rw-r--r--dx/src/com/android/dx/command/dexer/Main.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/dx/src/com/android/dx/command/dexer/Main.java b/dx/src/com/android/dx/command/dexer/Main.java
index e93c6a32c..6a825ef14 100644
--- a/dx/src/com/android/dx/command/dexer/Main.java
+++ b/dx/src/com/android/dx/command/dexer/Main.java
@@ -748,6 +748,9 @@ public class Main {
try {
new DirectClassFileConsumer(name, bytes, null).call(
new ClassParserTask(name, bytes).call());
+ } catch (ParseException ex) {
+ // handled in FileBytesConsumer
+ throw ex;
} catch(Exception ex) {
throw new RuntimeException("Exception parsing classes", ex);
}
@@ -1653,6 +1656,14 @@ public class Main {
DxConsole.err.println("\nEXCEPTION FROM SIMULATION:");
DxConsole.err.println(ex.getMessage() + "\n");
DxConsole.err.println(((SimException) ex).getContext());
+ } else if (ex instanceof ParseException) {
+ DxConsole.err.println("\nPARSE ERROR:");
+ ParseException parseException = (ParseException) ex;
+ if (args.debug) {
+ parseException.printStackTrace(DxConsole.err);
+ } else {
+ parseException.printContext(DxConsole.err);
+ }
} else {
DxConsole.err.println("\nUNEXPECTED TOP-LEVEL EXCEPTION:");
ex.printStackTrace(DxConsole.err);