diff options
author | Martin Odersky <odersky@gmail.com> | 2003-02-13 14:41:36 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-02-13 14:41:36 +0000 |
commit | 4177daab2f54bdb20c71f623296a8bb32616fd12 (patch) | |
tree | 23f08b43f3758e825d5965b336030603a65bbcf7 /sources/scalac/ApplicationError.java | |
parent | 33d6e170c97ca7b2f991896a0729941a7240b6d6 (diff) | |
download | scala-4177daab2f54bdb20c71f623296a8bb32616fd12.tar.gz scala-4177daab2f54bdb20c71f623296a8bb32616fd12.tar.bz2 scala-4177daab2f54bdb20c71f623296a8bb32616fd12.zip |
Initial version.
Diffstat (limited to 'sources/scalac/ApplicationError.java')
-rw-r--r-- | sources/scalac/ApplicationError.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/sources/scalac/ApplicationError.java b/sources/scalac/ApplicationError.java new file mode 100644 index 0000000000..e689217eec --- /dev/null +++ b/sources/scalac/ApplicationError.java @@ -0,0 +1,87 @@ +/* ____ ____ ____ ____ ______ *\ +** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala ** +** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL ** +** /_____/\____/\___/\____/____/ ** +** ** +** $Id$ +\* */ + +package scalac; + +import java.io.PrintStream; +import java.io.PrintWriter; + +import scalac.util.Debug; + +public class ApplicationError extends Error { + + //######################################################################## + // Private state + + private final Throwable cause; // !!! remove and use API 1.4 + + //######################################################################## + // Private interface + + private static String combine(String message, Object object) { + String string = Debug.show(object); + return message == null ? string : message + ": " + string; + } + + //######################################################################## + // ApplicationError constructors + + public ApplicationError() { + this((String)null, (Throwable)null); + } + + public ApplicationError(String message) { + this(message, (Throwable)null); + } + + public ApplicationError(Object object) { + this(null, object, null); + } + + public ApplicationError(Throwable cause) { + this((String)null, cause); + } + + public ApplicationError(String message, Object object) { + this(message, object, null); + } + + public ApplicationError(String message, Throwable cause) { + super(message); + this.cause = cause; + } + + public ApplicationError(Object object, Throwable cause) { + this(null, object, cause); + } + + public ApplicationError(String message, Object object, Throwable cause) { + this(combine(message, object), cause); + } + + //######################################################################## + // Throwable interface + + public void printStackTrace(PrintStream printer) { + super.printStackTrace(printer); + if (cause != null) { + printer.print("Caused by: "); + cause.printStackTrace(printer); + } + } + + public void printStackTrace(PrintWriter printer) { + super.printStackTrace(printer); + if (cause != null) { + printer.print("Caused by: "); + cause.printStackTrace(printer); + } + } + + //######################################################################## +} |