More exception rework.

I believe this change gets rid of the remaining throw calls that
used quoted strings for the excpetion type argument.

Bug: 3500987
Change-Id: Id4f905883c1a4e4e5608a2c59986cbd602d416cc
diff --git a/vm/Jni.c b/vm/Jni.c
index 0c8f4ca..4a95467 100644
--- a/vm/Jni.c
+++ b/vm/Jni.c
@@ -2351,7 +2351,7 @@
     } else if (dvmIsInterfaceClass(clazz)) {
         Method* meth = dvmFindInterfaceMethodHierByDescriptor(clazz, name, sig);
         if (meth == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchMethodError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchMethodError,
                 "no method with name='%s' signature='%s' in interface %s",
                 name, sig, clazz->descriptor);
         }
@@ -2372,7 +2372,7 @@
             meth = NULL;
         }
         if (meth == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchMethodError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchMethodError,
                 "no method with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         } else {
@@ -2407,7 +2407,7 @@
     } else {
         id = (jfieldID) dvmFindInstanceFieldHier(clazz, name, sig);
         if (id == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchFieldError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchFieldError,
                 "no field with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         }
@@ -2449,7 +2449,7 @@
 
         id = (jmethodID) meth;
         if (id == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchMethodError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchMethodError,
                 "no static method with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         }
@@ -2476,7 +2476,7 @@
     } else {
         id = (jfieldID) dvmFindStaticField(clazz, name, sig);
         if (id == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchFieldError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchFieldError,
                 "no static field with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         }
diff --git a/vm/Profile.c b/vm/Profile.c
index 1d45715..d3cbf63 100644
--- a/vm/Profile.c
+++ b/vm/Profile.c
@@ -359,7 +359,7 @@
             int err = errno;
             LOGE("Unable to open trace file '%s': %s\n",
                 traceFileName, strerror(err));
-            dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+            dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
                 "Unable to open trace file '%s': %s",
                 traceFileName, strerror(err));
             goto fail;
@@ -636,7 +636,7 @@
             int err = errno;
             LOGE("trace fwrite(%d) failed: %s\n",
                 finalCurOffset, strerror(err));
-            dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+            dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
                 "Trace data write failed: %s", strerror(err));
         }
     }
diff --git a/vm/native/dalvik_system_VMDebug.c b/vm/native/dalvik_system_VMDebug.c
index 78c12f8..36460e9 100644
--- a/vm/native/dalvik_system_VMDebug.c
+++ b/vm/native/dalvik_system_VMDebug.c
@@ -280,7 +280,7 @@
 
         fd = dup(origFd);
         if (fd < 0) {
-            dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+            dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
                 "dup(%d) failed: %s", origFd, strerror(errno));
             RETURN_VOID();
         }
diff --git a/vm/oo/Array.c b/vm/oo/Array.c
index 0fa0f80..0a47caa 100644
--- a/vm/oo/Array.c
+++ b/vm/oo/Array.c
@@ -51,7 +51,7 @@
     size_t totalSize = elementSize + headerSize;
     if (elementSize >> elementShift != length || totalSize < elementSize) {
         char *descriptor = dvmHumanReadableDescriptor(arrayClass->descriptor);
-        dvmThrowExceptionFmt("Ljava/lang/OutOfMemoryError;",
+        dvmThrowExceptionFmtByClass(gDvm.exOutOfMemoryError,
                              "%s of length %zd exceeds the VM limit",
                              descriptor, length);
         free(descriptor);