Source for org.xml.sax.SAXException

   1: // SAX exception class.
   2: // http://www.saxproject.org
   3: // No warranty; no copyright -- use this as you will.
   4: // $Id: SAXException.java,v 1.1 2004/12/23 22:38:42 mark Exp $
   5: 
   6: package org.xml.sax;
   7: 
   8: /**
   9:  * Encapsulate a general SAX error or warning.
  10:  *
  11:  * <blockquote>
  12:  * <em>This module, both source code and documentation, is in the
  13:  * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
  14:  * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
  15:  * for further information.
  16:  * </blockquote>
  17:  *
  18:  * <p>This class can contain basic error or warning information from
  19:  * either the XML parser or the application: a parser writer or
  20:  * application writer can subclass it to provide additional
  21:  * functionality.  SAX handlers may throw this exception or
  22:  * any exception subclassed from it.</p>
  23:  *
  24:  * <p>If the application needs to pass through other types of
  25:  * exceptions, it must wrap those exceptions in a SAXException
  26:  * or an exception derived from a SAXException.</p>
  27:  *
  28:  * <p>If the parser or application needs to include information about a
  29:  * specific location in an XML document, it should use the
  30:  * {@link org.xml.sax.SAXParseException SAXParseException} subclass.</p>
  31:  *
  32:  * @since SAX 1.0
  33:  * @author David Megginson
  34:  * @version 2.0.1 (sax2r2)
  35:  * @see org.xml.sax.SAXParseException
  36:  */
  37: public class SAXException extends Exception {
  38: 
  39: 
  40:     /**
  41:      * Create a new SAXException.
  42:      */
  43:     public SAXException ()
  44:     {
  45:         super();
  46:         this.exception = null;
  47:     }
  48: 
  49: 
  50:     /**
  51:      * Create a new SAXException.
  52:      *
  53:      * @param message The error or warning message.
  54:      */
  55:     public SAXException (String message) {
  56:         super(message);
  57:         this.exception = null;
  58:     }
  59: 
  60: 
  61:     /**
  62:      * Create a new SAXException wrapping an existing exception.
  63:      *
  64:      * <p>The existing exception will be embedded in the new
  65:      * one, and its message will become the default message for
  66:      * the SAXException.</p>
  67:      *
  68:      * @param e The exception to be wrapped in a SAXException.
  69:      */
  70:     public SAXException (Exception e)
  71:     {
  72:         super();
  73:         this.exception = e;
  74:     }
  75: 
  76: 
  77:     /**
  78:      * Create a new SAXException from an existing exception.
  79:      *
  80:      * <p>The existing exception will be embedded in the new
  81:      * one, but the new exception will have its own message.</p>
  82:      *
  83:      * @param message The detail message.
  84:      * @param e The exception to be wrapped in a SAXException.
  85:      */
  86:     public SAXException (String message, Exception e)
  87:     {
  88:         super(message);
  89:         this.exception = e;
  90:     }
  91: 
  92: 
  93:     /**
  94:      * Return a detail message for this exception.
  95:      *
  96:      * <p>If there is an embedded exception, and if the SAXException
  97:      * has no detail message of its own, this method will return
  98:      * the detail message from the embedded exception.</p>
  99:      *
 100:      * @return The error or warning message.
 101:      */
 102:     public String getMessage ()
 103:     {
 104:         String message = super.getMessage();
 105: 
 106:         if (message == null && exception != null) {
 107:             return exception.getMessage();
 108:         } else {
 109:             return message;
 110:         }
 111:     }
 112: 
 113: 
 114:     /**
 115:      * Return the embedded exception, if any.
 116:      *
 117:      * @return The embedded exception, or null if there is none.
 118:      */
 119:     public Exception getException ()
 120:     {
 121:         return exception;
 122:     }
 123: 
 124: 
 125:     /**
 126:      * Override toString to pick up any embedded exception.
 127:      *
 128:      * @return A string representation of this exception.
 129:      */
 130:     public String toString ()
 131:     {
 132:         if (exception != null) {
 133:             return exception.toString();
 134:         } else {
 135:             return super.toString();
 136:         }
 137:     }
 138: 
 139: 
 140: 
 141:     //////////////////////////////////////////////////////////////////////
 142:     // Internal state.
 143:     //////////////////////////////////////////////////////////////////////
 144: 
 145: 
 146:     /**
 147:      * @serial The embedded exception if tunnelling, or null.
 148:      */
 149:     private Exception exception;
 150: 
 151: }
 152: 
 153: // end of SAXException.java