Home » commons-lang-2.4-src » org.apache.commons » lang » exception » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  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   package org.apache.commons.lang.exception;
   18   
   19   import java.io.PrintStream;
   20   import java.io.PrintWriter;
   21   
   22   /**
   23    * The base class of all errors which can contain other exceptions.
   24    *
   25    * @author Daniel L. Rall
   26    * @see org.apache.commons.lang.exception.NestableException
   27    * @since 1.0
   28    * @version $Id: NestableError.java 512889 2007-02-28 18:18:20Z dlr $
   29    */
   30   public class NestableError extends Error implements Nestable {
   31   
   32       /**
   33        * Required for serialization support.
   34        * 
   35        * @see java.io.Serializable
   36        */
   37       private static final long serialVersionUID = 1L;
   38   
   39       /**
   40        * The helper instance which contains much of the code which we
   41        * delegate to.
   42        */
   43       protected NestableDelegate delegate = new NestableDelegate(this);
   44   
   45       /**
   46        * Holds the reference to the exception or error that caused
   47        * this exception to be thrown.
   48        */
   49       private Throwable cause = null;
   50   
   51       /**
   52        * Constructs a new <code>NestableError</code> without specified
   53        * detail message.
   54        */
   55       public NestableError() {
   56           super();
   57       }
   58   
   59       /**
   60        * Constructs a new <code>NestableError</code> with specified
   61        * detail message.
   62        *
   63        * @param msg The error message.
   64        */
   65       public NestableError(String msg) {
   66           super(msg);
   67       }
   68   
   69       /**
   70        * Constructs a new <code>NestableError</code> with specified
   71        * nested <code>Throwable</code>.
   72        *
   73        * @param cause the exception or error that caused this exception to be
   74        * thrown
   75        */
   76       public NestableError(Throwable cause) {
   77           super();
   78           this.cause = cause;
   79       }
   80   
   81       /**
   82        * Constructs a new <code>NestableError</code> with specified
   83        * detail message and nested <code>Throwable</code>.
   84        *
   85        * @param msg    the error message
   86        * @param cause  the exception or error that caused this exception to be
   87        * thrown
   88        */
   89       public NestableError(String msg, Throwable cause) {
   90           super(msg);
   91           this.cause = cause;
   92       }
   93   
   94       /**
   95        * {@inheritDoc}
   96        */
   97       public Throwable getCause() {
   98           return cause;
   99       }
  100   
  101       /**
  102        * Returns the detail message string of this throwable. If it was
  103        * created with a null message, returns the following:
  104        * (cause==null ? null : cause.toString()).
  105        *
  106        * @return String message string of the throwable
  107        */
  108       public String getMessage() {
  109           if (super.getMessage() != null) {
  110               return super.getMessage();
  111           } else if (cause != null) {
  112               return cause.toString();
  113           } else {
  114               return null;
  115           }
  116       }
  117   
  118       /**
  119        * {@inheritDoc}
  120        */
  121       public String getMessage(int index) {
  122           if (index == 0) {
  123               return super.getMessage();
  124           }
  125           return delegate.getMessage(index);
  126       }
  127   
  128       /**
  129        * {@inheritDoc}
  130        */
  131       public String[] getMessages() {
  132           return delegate.getMessages();
  133       }
  134   
  135       /**
  136        * {@inheritDoc}
  137        */
  138       public Throwable getThrowable(int index) {
  139           return delegate.getThrowable(index);
  140       }
  141   
  142       /**
  143        * {@inheritDoc}
  144        */
  145       public int getThrowableCount() {
  146           return delegate.getThrowableCount();
  147       }
  148   
  149       /**
  150        * {@inheritDoc}
  151        */
  152       public Throwable[] getThrowables() {
  153           return delegate.getThrowables();
  154       }
  155   
  156       /**
  157        * {@inheritDoc}
  158        */
  159       public int indexOfThrowable(Class type) {
  160           return delegate.indexOfThrowable(type, 0);
  161       }
  162   
  163       /**
  164        * {@inheritDoc}
  165        */
  166       public int indexOfThrowable(Class type, int fromIndex) {
  167           return delegate.indexOfThrowable(type, fromIndex);
  168       }
  169   
  170       /**
  171        * {@inheritDoc}
  172        */
  173       public void printStackTrace() {
  174           delegate.printStackTrace();
  175       }
  176   
  177       /**
  178        * {@inheritDoc}
  179        */
  180       public void printStackTrace(PrintStream out) {
  181           delegate.printStackTrace(out);
  182       }
  183   
  184       /**
  185        * {@inheritDoc}
  186        */
  187       public void printStackTrace(PrintWriter out) {
  188           delegate.printStackTrace(out);
  189       }
  190   
  191       /**
  192        * {@inheritDoc}
  193        */
  194       public final void printPartialStackTrace(PrintWriter out) {
  195           super.printStackTrace(out);
  196       }
  197   }

Save This Page
Home » commons-lang-2.4-src » org.apache.commons » lang » exception » [javadoc | source]