diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
index a89fb11..16e04a5 100644
--- a/src/interpreter/interpreter.cc
+++ b/src/interpreter/interpreter.cc
@@ -420,9 +420,7 @@
     num_regs = code_item->registers_size_;
     num_ins = code_item->ins_size_;
   } else if (method->IsAbstract()) {
-    ThrowLocation throw_location = self->GetCurrentLocationForThrow();
-    self->ThrowNewExceptionF(throw_location, "Ljava/lang/AbstractMethodError;",
-                             "abstract method \"%s\"", PrettyMethod(method).c_str());
+    ThrowAbstractMethodError(method);
     return;
   } else {
     DCHECK(method->IsNative() || method->IsProxyMethod());
@@ -511,9 +509,7 @@
     num_regs = code_item->registers_size_;
     num_ins = code_item->ins_size_;
   } else if (method->IsAbstract()) {
-    ThrowLocation throw_location = self->GetCurrentLocationForThrow();
-    self->ThrowNewExceptionF(throw_location, "Ljava/lang/AbstractMethodError;",
-                             "abstract method \"%s\"", PrettyMethod(method).c_str());
+    ThrowAbstractMethodError(method);
     return;
   } else {
     DCHECK(method->IsNative() || method->IsProxyMethod());
@@ -2988,9 +2984,7 @@
     num_regs =  code_item->registers_size_;
     num_ins = code_item->ins_size_;
   } else if (method->IsAbstract()) {
-    ThrowLocation throw_location = self->GetCurrentLocationForThrow();
-    self->ThrowNewExceptionF(throw_location, "Ljava/lang/AbstractMethodError;",
-                             "abstract method \"%s\"", PrettyMethod(method).c_str());
+    ThrowAbstractMethodError(method);
     return;
   } else {
     DCHECK(method->IsNative());
