diff options
author | Benoit Lamarche <benoitlamarche@google.com> | 2016-02-17 13:34:19 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-02-17 13:34:19 +0000 |
commit | 76aa4cd93590bcd41efe5c5b7858b2e5cf0d8355 (patch) | |
tree | 42151a381b9a443e82be8d280a6b04891c351d4f | |
parent | d317cc3a99cf4a943877d0e0f22781829e4edd8f (diff) | |
parent | bd156605a787bbbb5524b6b25254b37a67e6dd7f (diff) | |
download | dalvik-76aa4cd93590bcd41efe5c5b7858b2e5cf0d8355.tar.gz |
Merge "Improve dx error handling"
-rw-r--r-- | dx/src/com/android/dx/command/dexer/Main.java | 11 |
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); |