View Javadoc
1   /*
2    * Copyright (c) 2002-2024 Gargoyle Software Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * https://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package netscape.javascript;
16  
17  /**
18   * Stub for the JSException. This is part of the Applet
19   * LiveConnect simulation.
20   * <p>
21   * TODO: we have to evaluate if it is possible to use plugin.jar from jdk
22   *
23   * @author Ronald Brill
24   */
25  public class JSException extends RuntimeException {
26      /** EXCEPTION_TYPE_EMPTY = -1. */
27      public static final int EXCEPTION_TYPE_EMPTY = -1;
28  
29      /** EXCEPTION_TYPE_VOID = 0. */
30      public static final int EXCEPTION_TYPE_VOID = 0;
31  
32      /** EXCEPTION_TYPE_OBJECT = 1. */
33      public static final int EXCEPTION_TYPE_OBJECT = 1;
34  
35      /** EXCEPTION_TYPE_FUNCTION = 2. */
36      public static final int EXCEPTION_TYPE_FUNCTION = 2;
37  
38      /** EXCEPTION_TYPE_STRING = 3. */
39      public static final int EXCEPTION_TYPE_STRING = 3;
40  
41      /** EXCEPTION_TYPE_NUMBER = 4. */
42      public static final int EXCEPTION_TYPE_NUMBER = 4;
43  
44      /** EXCEPTION_TYPE_BOOLEAN = 5. */
45      public static final int EXCEPTION_TYPE_BOOLEAN = 5;
46  
47      /** EXCEPTION_TYPE_ERROR = 6. */
48      public static final int EXCEPTION_TYPE_ERROR = 6;
49  
50      /** wrappedExceptionType. */
51      private int wrappedExceptionType_ = EXCEPTION_TYPE_EMPTY;
52  
53      /** wrappedException. */
54      private Object wrappedException_;
55  
56      /**
57       * Constructor.
58       */
59      public JSException() {
60          this(null);
61      }
62  
63      /**
64       * Constructor.
65       * @param message the message
66       */
67      public JSException(final String message) {
68          this(message, null, -1, null, -1);
69      }
70  
71      /**
72       * Constructor.
73       * @param message the message
74       * @param filename the filename
75       * @param lineno the lineno
76       * @param source the source
77       * @param tokenIndex the tokenIndex
78       */
79      public JSException(final String message,
80              final String filename, final int lineno,
81              final String source, final int tokenIndex) {
82          super(message);
83      }
84  
85      /**
86       * Constructor.
87       * @param exceptionType the exception type
88       * @param exception the exception
89       */
90      public JSException(final int exceptionType, final Object exception) {
91          this();
92          wrappedExceptionType_ = exceptionType;
93          wrappedException_ = exception;
94      }
95  
96      /**
97       * Returns the wrapped exception type.
98       * @return wrapped exception type
99       */
100     public int getWrappedExceptionType() {
101         return wrappedExceptionType_;
102     }
103 
104     /**
105      * Returns the wrapped exception.
106      * @return wrapped exception
107      */
108     public Object getWrappedException() {
109         return wrappedException_;
110     }
111 }