1 /** 2 * Redistribution and use of this software and associated documentation ("Software"), with or 3 * without modification, are permitted provided that the following conditions are met: 4 * 5 * 1. Redistributions of source code must retain copyright statements and notices. Redistributions 6 * must also contain a copy of this document. 7 * 8 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of 9 * conditions and the following disclaimer in the documentation and/or other materials provided with 10 * the distribution. 11 * 12 * 3. The name "Exolab" must not be used to endorse or promote products derived from this Software 13 * without prior written permission of Intalio, Inc. For written permission, please contact 14 * info@exolab.org. 15 * 16 * 4. Products derived from this Software may not be called "Exolab" nor may "Exolab" appear in 17 * their names without prior written permission of Intalio, Inc. Exolab is a registered trademark of 18 * Intalio, Inc. 19 * 20 * 5. Due credit should be given to the Exolab Project (http://www.exolab.org/). 21 * 22 * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR 23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 24 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTALIO, INC. OR ITS 25 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY 29 * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 * 31 * Copyright 2002 (C) Intalio, Inc. All Rights Reserved. 32 * 33 * $Id$ 34 */ 35 36 package org.exolab.castor.net; 37 38 39 import java.io.PrintStream; 40 import java.io.PrintWriter; 41 42 43 /** 44 * URIException is used when an error occurs during URI resolving 45 * 46 * @author <a href="kvisco@intalio.com">Keith Visco</a> 47 * @version $Revision$ 48 */ 49 public final class URIException extends Exception { 50 /** SerialVersionUID */ 51 private static final long serialVersionUID = 4230299234562430190L; 52 53 /** 54 * nested exception, may be null. 55 **/ 56 private Exception _exception = null; 57 58 /** 59 * Creates a new URIException 60 * 61 * @param message the explaination for this exception 62 **/ 63 public URIException(String message) { 64 super(message); 65 } // -- URIException 66 67 /** 68 * Creates a new URIException 69 * 70 * @param message the explaination for this exception 71 * @param exception an optional nested exception, most likely, the exception which caused this 72 * exception. 73 **/ 74 public URIException(String message, Exception exception) { 75 super(message); 76 if (exception instanceof URIException) 77 _exception = ((URIException) exception)._exception; 78 else 79 _exception = exception; 80 } // -- URIException 81 82 83 /** 84 * Creates a new URIException 85 * 86 * @param exception the exception which caused this exception. Note: to use this constructor 87 * exception must not be null. 88 **/ 89 public URIException(Exception exception) { 90 this(exception.getMessage(), exception); 91 } // -- URIException 92 93 94 /** 95 * Returns the nested exception, or null if no exception exists. 96 * 97 * @return the nested exception, or null if no exception exists 98 **/ 99 public Exception getException() { 100 return _exception; 101 } // -- getException 102 103 104 public void printStackTrace() { 105 if (_exception != null) 106 _exception.printStackTrace(); 107 else 108 super.printStackTrace(); 109 } // -- printStackTrace 110 111 112 public void printStackTrace(PrintStream s) { 113 if (_exception != null) 114 _exception.printStackTrace(s); 115 else 116 super.printStackTrace(s); 117 } // -- printStackTrace 118 119 120 public void printStackTrace(PrintWriter s) { 121 if (_exception != null) 122 _exception.printStackTrace(s); 123 else 124 super.printStackTrace(s); 125 } // -- printStackTrace 126 } // -- URIException 127 128