summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ObjectRunner.scala
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2006-06-15 20:49:54 +0000
committermichelou <michelou@epfl.ch>2006-06-15 20:49:54 +0000
commit4f69e5325de4a66f67485a9a6ed03795597b644a (patch)
tree142529cf5a50e4e155dd81063927f247fb86bac9 /src/compiler/scala/tools/nsc/ObjectRunner.scala
parentd8dd12a5515e349b61e79d2111b9d54743c0c3c7 (diff)
downloadscala-4f69e5325de4a66f67485a9a6ed03795597b644a.tar.gz
scala-4f69e5325de4a66f67485a9a6ed03795597b644a.tar.bz2
scala-4f69e5325de4a66f67485a9a6ed03795597b644a.zip
fixed "guess" test in MainGenericRunner.scala
added try/catch around Class.forName in ObjectRunner.scala
Diffstat (limited to 'src/compiler/scala/tools/nsc/ObjectRunner.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ObjectRunner.scala31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/compiler/scala/tools/nsc/ObjectRunner.scala b/src/compiler/scala/tools/nsc/ObjectRunner.scala
index cf636af7ab..d2202f5046 100644
--- a/src/compiler/scala/tools/nsc/ObjectRunner.scala
+++ b/src/compiler/scala/tools/nsc/ObjectRunner.scala
@@ -27,19 +27,24 @@ object ObjectRunner {
classpath: List[String],
objectName: String,
arguments: Seq[String]): Unit =
- {
- val classpathURLs = classpath.map(s => new File(s).toURL).toArray
- val mainLoader = new URLClassLoader(classpathURLs, null)
- val clsToRun = Class.forName(objectName, true, mainLoader)
-
- val method = clsToRun.getMethods.find(isMainMethod) match {
- case Some(meth) =>
- meth
- case None => {
- throw new Error("no main method in object " + objectName)
+ try {
+ val classpathURLs = classpath.map(s => new File(s).toURL).toArray
+ val mainLoader = new URLClassLoader(classpathURLs, null)
+ val clsToRun = Class.forName(objectName, true, mainLoader)
+
+ val method = clsToRun.getMethods.find(isMainMethod) match {
+ case Some(meth) =>
+ meth
+ case None =>
+ throw new Error("no main method in object " + objectName)
}
+ val res = method.invoke(null, List(arguments.toArray).toArray)
+ ()
+ } catch {
+ case e: Exception =>
+ // ClassNotFoundException, InvocationTargetException, ..
+ Console.println(e)
+ exit(1)
}
- val res = method.invoke(null, List(arguments.toArray).toArray)
- ()
- }
+
}