summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/Reflector.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java
index f530b786..b62ef7f0 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -31,6 +31,8 @@ public static Object invokeInstanceMethod(Object target, String methodName, Obje
{
if(e.getCause() instanceof Exception)
throw (Exception) e.getCause();
+ else if(e.getCause() instanceof Error)
+ throw (Error) e.getCause();
throw e;
}
}
@@ -89,6 +91,8 @@ static Object invokeMatchingMethod(String methodName, List methods, Object targe
{
if(e.getCause() instanceof Exception)
throw (Exception) e.getCause();
+ else if(e.getCause() instanceof Error)
+ throw (Error) e.getCause();
throw e;
}
@@ -162,6 +166,8 @@ public static Object invokeConstructor(Class c, Object[] args) throws Exception{
{
if(e.getCause() instanceof Exception)
throw (Exception) e.getCause();
+ else if(e.getCause() instanceof Error)
+ throw (Error) e.getCause();
throw e;
}
}
@@ -181,6 +187,8 @@ public static Object invokeStaticMethod(String className, String methodName, Obj
{
if(e.getCause() instanceof Exception)
throw (Exception) e.getCause();
+ else if(e.getCause() instanceof Error)
+ throw (Error) e.getCause();
throw e;
}
}