OSDN Git Service

Made handling of sim exceptions nicer.
authorjeffhao <jeffhao@google.com>
Fri, 21 Jan 2011 21:37:57 +0000 (13:37 -0800)
committerjeffhao <jeffhao@google.com>
Fri, 21 Jan 2011 21:58:18 +0000 (13:58 -0800)
Change-Id: I089512c046d90ea37da4a33433edc4ec308a628d

dx/src/com/android/dx/command/dexer/Main.java

index b261d31..d5902e2 100644 (file)
@@ -17,6 +17,7 @@
 package com.android.dx.command.dexer;
 
 import com.android.dx.Version;
+import com.android.dx.cf.code.SimException;
 import com.android.dx.cf.direct.ClassPathOpener;
 import com.android.dx.cf.iface.ParseException;
 import com.android.dx.command.DxConsole;
@@ -348,9 +349,14 @@ public class Main {
             public void onException(Exception ex) {
                 if (ex instanceof StopProcessing) {
                     throw (StopProcessing) ex;
+                } else if (ex instanceof SimException) {
+                    DxConsole.err.println("\nEXCEPTION FROM SIMULATION:");
+                    DxConsole.err.println(ex.getMessage() + "\n");
+                    DxConsole.err.println(((SimException) ex).getContext());
+                } else {
+                    DxConsole.err.println("\nUNEXPECTED TOP-LEVEL EXCEPTION:");
+                    ex.printStackTrace(DxConsole.err);
                 }
-                DxConsole.err.println("\nUNEXPECTED TOP-LEVEL EXCEPTION:");
-                ex.printStackTrace(DxConsole.err);
                 errors++;
             }
             public void onProcessArchiveStart(File file) {