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