diff options
author | Matthias Zenger <mzenger@gmail.com> | 2004-03-08 15:58:20 +0000 |
---|---|---|
committer | Matthias Zenger <mzenger@gmail.com> | 2004-03-08 15:58:20 +0000 |
commit | 79ab139d5802a985d43af3427811edcbca868158 (patch) | |
tree | 4c29ab31baaad1e3ed8e2f2c0023896b5592c78a /sources | |
parent | 2dedb4dd2b3ae0201c7a79566a430c6cfd090fff (diff) | |
download | scala-79ab139d5802a985d43af3427811edcbca868158.tar.gz scala-79ab139d5802a985d43af3427811edcbca868158.tar.bz2 scala-79ab139d5802a985d43af3427811edcbca868158.zip |
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/MatchError.java | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/sources/scala/MatchError.java b/sources/scala/MatchError.java index 6d8b827476..0668f5a1d6 100644 --- a/sources/scala/MatchError.java +++ b/sources/scala/MatchError.java @@ -10,17 +10,43 @@ package scala; -public class MatchError extends Error { + +/** This class implements errors which are thrown whenever an + * object doesn't match any pattern of a pattern matching + * expression. + * + * @author Matthias Zenger + * @version 1.1, 05/03/2004 + */ +public final class MatchError extends Error { /** @meta constr (java.lang.String, scala.Int); */ - public MatchError(java.lang.String source, int line) { + private MatchError(java.lang.String source, int line) { super(" in '" + source + "' at line " + line); } + /** @meta constr (java.lang.String, scala.Int, java.lang.String); + */ + private MatchError(java.lang.String source, int line, String obj) { + super("for object " + obj + " in '" + source + "' at line " + line); + } + /** @meta method [?T](java.lang.String, scala.Int) ?T; */ public static java.lang.Object fail(java.lang.String source, int line) { throw new MatchError(source, line); } + + /** @meta method [?T](java.lang.String, scala.Int, scala.Any) ?T; + */ + public static java.lang.Object report(java.lang.String source, int line, java.lang.Object obj) { + try { + throw new MatchError(source, line, obj.toString()); + } catch (MatchError e) { + throw e; + } catch (Throwable e) { + throw new MatchError(source, line); + } + } } |