package netscape.javascript; /** * JSException is an exception which is thrown when JavaScript code returns an * error. */ public class JSException extends RuntimeException { public static final int EXCEPTION_TYPE_EMPTY = -1; public static final int EXCEPTION_TYPE_VOID = 0; public static final int EXCEPTION_TYPE_OBJECT = 1; public static final int EXCEPTION_TYPE_FUNCTION = 2; public static final int EXCEPTION_TYPE_STRING = 3; public static final int EXCEPTION_TYPE_NUMBER = 4; public static final int EXCEPTION_TYPE_BOOLEAN = 5; public static final int EXCEPTION_TYPE_ERROR = 6; String filename; int lineno; String source; int tokenIndex; private final int wrappedExceptionType; private Object wrappedException; /** * Constructs a JSException without a detail message. A detail message is a * String that describes this particular exception. * * @deprecated Not for public use in future versions. */ public JSException() { super(); filename = "unknown"; lineno = 0; source = ""; tokenIndex = 0; wrappedExceptionType = EXCEPTION_TYPE_EMPTY; } /** * Constructs a JSException with a detail message. A detail message is a * String that describes this particular exception. * * @param s * the detail message * * @deprecated Not for public use in future versions. */ public JSException(String s) { super(s); filename = "unknown"; lineno = 0; source = ""; tokenIndex = 0; wrappedExceptionType = EXCEPTION_TYPE_EMPTY; } /** * Constructs a JSException with a wrapped JavaScript exception object. This * constructor needs to be public so that Java users can throw exceptions to * JS cleanly. */ private JSException(int wrappedExceptionType, Object wrappedException) { super(); this.wrappedExceptionType = wrappedExceptionType; this.wrappedException = wrappedException; } /** * Constructs a JSException with a detail message and all the other info * that usually comes with a JavaScript error. * * @param s * the detail message * * @deprecated Not for public use in future versions. */ public JSException(String s, String filename, int lineno, String source, int tokenIndex) { super(s); this.filename = filename; this.lineno = lineno; this.source = source; this.tokenIndex = tokenIndex; wrappedExceptionType = EXCEPTION_TYPE_EMPTY; } /** * Instance method getWrappedExceptionType returns the int mapping of the * type of the wrappedException Object. */ public int getWrappedExceptionType() { return wrappedExceptionType; } /** * Instance method getWrappedException. */ public Object getWrappedException() { return wrappedException; } }