summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Zenger <mzenger@gmail.com>2004-03-08 15:58:20 +0000
committerMatthias Zenger <mzenger@gmail.com>2004-03-08 15:58:20 +0000
commit79ab139d5802a985d43af3427811edcbca868158 (patch)
tree4c29ab31baaad1e3ed8e2f2c0023896b5592c78a
parent2dedb4dd2b3ae0201c7a79566a430c6cfd090fff (diff)
downloadscala-79ab139d5802a985d43af3427811edcbca868158.tar.gz
scala-79ab139d5802a985d43af3427811edcbca868158.tar.bz2
scala-79ab139d5802a985d43af3427811edcbca868158.zip
*** empty log message ***
-rw-r--r--sources/scala/MatchError.java30
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);
+ }
+ }
}