1 /** 2 * 3 * Copyright 2003-2004 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 // 19 // This source code implements specifications defined by the Java 20 // Community Process. In order to remain compliant with the specification 21 // DO NOT add / change / or delete method signatures! 22 // 23 24 package javax.servlet.jsp; 25 26 /** 27 * A generic exception known to the JSP engine; uncaught 28 * JspExceptions will result in an invocation of the errorpage 29 * machinery. 30 */ 31 32 public class JspException extends Exception { 33 34 private Throwable rootCause; 35 36 37 /** 38 * Construct a JspException. 39 */ 40 public JspException() { 41 } 42 43 44 /** 45 * Constructs a new JSP exception with the 46 * specified message. The message can be written 47 * to the server log and/or displayed for the user. 48 * 49 * @param msg a <code>String</code> 50 * specifying the text of 51 * the exception message 52 * 53 */ 54 public JspException(String msg) { 55 super(msg); 56 } 57 58 59 /** 60 * Constructs a new JSP exception when the JSP 61 * needs to throw an exception and include a message 62 * about the "root cause" exception that interfered with its 63 * normal operation, including a description message. 64 * 65 * 66 * @param message a <code>String</code> containing 67 * the text of the exception message 68 * 69 * @param rootCause the <code>Throwable</code> exception 70 * that interfered with the servlet's 71 * normal operation, making this servlet 72 * exception necessary 73 * 74 */ 75 76 public JspException(String message, Throwable rootCause) { 77 super(message); 78 this.rootCause = rootCause; 79 } 80 81 82 /** 83 * Constructs a new JSP exception when the JSP 84 * needs to throw an exception and include a message 85 * about the "root cause" exception that interfered with its 86 * normal operation. The exception's message is based on the localized 87 * message of the underlying exception. 88 * 89 * <p>This method calls the <code>getLocalizedMessage</code> method 90 * on the <code>Throwable</code> exception to get a localized exception 91 * message. When subclassing <code>JspException</code>, 92 * this method can be overridden to create an exception message 93 * designed for a specific locale. 94 * 95 * @param rootCause the <code>Throwable</code> exception 96 * that interfered with the JSP's 97 * normal operation, making the JSP exception 98 * necessary 99 * 100 */ 101 102 public JspException(Throwable rootCause) { 103 super(rootCause.getLocalizedMessage()); 104 this.rootCause = rootCause; 105 } 106 107 108 /** 109 * Returns the exception that caused this JSP exception. 110 * 111 * 112 * @return the <code>Throwable</code> 113 * that caused this JSP exception 114 * 115 */ 116 117 public Throwable getRootCause() { 118 return rootCause; 119 } 120 }