| JavaDoq: Abrupt.java |
01
02 /*
03 * Descripter 1.0 - Java Script Engines
04 * Copyright (C) 2010-2015 Jianjun Liu (J.J.Liu)
05 *
06 * This program is free software: you can redistribute it and/or modify
07 * it under the terms of the GNU Affero General Public License as published by
08 * the Free Software Foundation, either version 3 of the License, or
09 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 package org.descripter.js;
21
22 /**
23 * <p>An abstract base class for interpreting exceptions.</p>
24 *
25 * @see Interpreter
26 *
27 * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.descripter.org" target="_blank">http://www.descripter.org</a>
28 * @since Descripter 1.0
29 */
30 public abstract class Abrupt extends RuntimeException
31 {
32 private static final long serialVersionUID = -1952897482867528618L;
33
34 /**
35 * <p>A stored value.</p>
36 * @since Descripter 1.0
37 */
38 public final Object value;
39
40 /**
41 * <p>Constructs a runtime exception of this type.</p>
42 * @param value A value to store.
43 * @since Descripter 1.0
44 */
45 protected Abrupt(Object value) {
46 this.value = value;
47 }
48
49 /**
50 * <p>Constructs a runtime exception of this type.</p>
51 * @since Descripter 1.0
52 */
53 protected Abrupt() {
54 this(null);
55 }
56
57 /**
58 * <p>Tries to throw the runtime exception.</p>
59 * @param label A label value.
60 * @since Descripter 1.0
61 */
62 public final void tryThrow(Object label) {
63 if (value != null && !value.equals(label)) {
64 throw this;
65 }
66 }
67 }
| JavaDoq: Abrupt.java |