diff options
author | Martin Odersky <odersky@gmail.com> | 2006-03-08 17:38:19 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-03-08 17:38:19 +0000 |
commit | 3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb (patch) | |
tree | 58bdd381e98cf426d642f8e16e0349d348eb8227 /src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | |
parent | d969657ce2bbcfeffdfd15a97f3f7ca33d877737 (diff) | |
download | scala-3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb.tar.gz scala-3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb.tar.bz2 scala-3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb.zip |
Some changes to make arrays work better
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 2dfd93b63f..4519d2fcd6 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -54,6 +54,10 @@ abstract class ClassfileParser { } def parse(file: AbstractFile, root: Symbol): unit = { + def handleError(e: Exception) = { + if (settings.debug.value) e.printStackTrace();//debug + throw new IOException("class file '" + in.file + "' is broken") + } assert(!busy); busy = true; this.in = new AbstractFileReader(file); @@ -71,10 +75,8 @@ abstract class ClassfileParser { this.pool = new ConstantPool; parseClass() } catch { - case e: RuntimeException => - e.printStackTrace(); - if (settings.debug.value) - throw new IOException("class file '" + in.file + "' is broken") + case e: FatalError => handleError(e) + case e: RuntimeException => handleError(e) } busy = false } |