diff options
Diffstat (limited to 'src/share/classes/javax/xml/xpath/XPathException.java')
-rw-r--r-- | src/share/classes/javax/xml/xpath/XPathException.java | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/src/share/classes/javax/xml/xpath/XPathException.java b/src/share/classes/javax/xml/xpath/XPathException.java new file mode 100644 index 0000000..aca84e5 --- /dev/null +++ b/src/share/classes/javax/xml/xpath/XPathException.java @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.xml.xpath; + +import java.io.PrintWriter; + +/** + * <code>XPathException</code> represents a generic XPath exception.</p> + * + * @author <a href="Norman.Walsh@Sun.com">Norman Walsh</a> + * @author <a href="mailto:Jeff.Suttor@Sun.COM">Jeff Suttor</a> + * @since 1.5 + */ +public class XPathException extends Exception { + + private final Throwable cause; + + /** + * <p>Stream Unique Identifier.</p> + */ + private static final long serialVersionUID = -1837080260374986980L; + + /** + * <p>Constructs a new <code>XPathException</code> + * with the specified detail <code>message</code>.</p> + * + * <p>The <code>cause</code> is not initialized.</p> + * + * <p>If <code>message</code> is <code>null</code>, + * then a <code>NullPointerException</code> is thrown.</p> + * + * @param message The detail message. + * + * @throws NullPointerException When <code>message</code> is + * <code>null</code>. + */ + public XPathException(String message) { + super(message); + if ( message == null ) { + throw new NullPointerException ( "message can't be null"); + } + this.cause = null; + } + + /** + * <p>Constructs a new <code>XPathException</code> + * with the specified <code>cause</code>.</p> + * + * <p>If <code>cause</code> is <code>null</code>, + * then a <code>NullPointerException</code> is thrown.</p> + * + * @param cause The cause. + * + * @throws NullPointerException if <code>cause</code> is <code>null</code>. + */ + public XPathException(Throwable cause) { + super(); + this.cause = cause; + if ( cause == null ) { + throw new NullPointerException ( "cause can't be null"); + } + } + + /** + * <p>Get the cause of this XPathException.</p> + * + * @return Cause of this XPathException. + */ + public Throwable getCause() { + return cause; + } + + /** + * <p>Print stack trace to specified <code>PrintStream</code>.</p> + * + * @param s Print stack trace to this <code>PrintStream</code>. + */ + public void printStackTrace(java.io.PrintStream s) { + if (getCause() != null) { + getCause().printStackTrace(s); + s.println("--------------- linked to ------------------"); + } + + super.printStackTrace(s); + } + + /** + * <p>Print stack trace to <code>System.err</code>.</p> + */ + public void printStackTrace() { + printStackTrace(System.err); + } + + /** + * <p>Print stack trace to specified <code>PrintWriter</code>.</p> + * + * @param s Print stack trace to this <code>PrintWriter</code>. + */ + public void printStackTrace(PrintWriter s) { + + if (getCause() != null) { + getCause().printStackTrace(s); + s.println("--------------- linked to ------------------"); + } + + super.printStackTrace(s); + } +} |