Save This Page
Home » openjdk-7 » java » lang » [javadoc | source]
    1   /*
    2    * Copyright (c) 1995, 2004, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Oracle designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Oracle in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22    * or visit www.oracle.com if you need additional information or have any
   23    * questions.
   24    */
   25   
   26   package java.lang;
   27   
   28   /**
   29    * Thrown when an application tries to load in a class through its
   30    * string name using:
   31    * <ul>
   32    * <li>The <code>forName</code> method in class <code>Class</code>.
   33    * <li>The <code>findSystemClass</code> method in class
   34    *     <code>ClassLoader</code> .
   35    * <li>The <code>loadClass</code> method in class <code>ClassLoader</code>.
   36    * </ul>
   37    * <p>
   38    * but no definition for the class with the specified name could be found.
   39    *
   40    * <p>As of release 1.4, this exception has been retrofitted to conform to
   41    * the general purpose exception-chaining mechanism.  The "optional exception
   42    * that was raised while loading the class" that may be provided at
   43    * construction time and accessed via the {@link #getException()} method is
   44    * now known as the <i>cause</i>, and may be accessed via the {@link
   45    * Throwable#getCause()} method, as well as the aforementioned "legacy method."
   46    *
   47    * @author  unascribed
   48    * @see     java.lang.Class#forName(java.lang.String)
   49    * @see     java.lang.ClassLoader#findSystemClass(java.lang.String)
   50    * @see     java.lang.ClassLoader#loadClass(java.lang.String, boolean)
   51    * @since   JDK1.0
   52    */
   53   public class ClassNotFoundException extends ReflectiveOperationException {
   54       /**
   55        * use serialVersionUID from JDK 1.1.X for interoperability
   56        */
   57        private static final long serialVersionUID = 9176873029745254542L;
   58   
   59       /**
   60        * This field holds the exception ex if the
   61        * ClassNotFoundException(String s, Throwable ex) constructor was
   62        * used to instantiate the object
   63        * @serial
   64        * @since 1.2
   65        */
   66       private Throwable ex;
   67   
   68       /**
   69        * Constructs a <code>ClassNotFoundException</code> with no detail message.
   70        */
   71       public ClassNotFoundException() {
   72           super((Throwable)null);  // Disallow initCause
   73       }
   74   
   75       /**
   76        * Constructs a <code>ClassNotFoundException</code> with the
   77        * specified detail message.
   78        *
   79        * @param   s   the detail message.
   80        */
   81       public ClassNotFoundException(String s) {
   82           super(s, null);  //  Disallow initCause
   83       }
   84   
   85       /**
   86        * Constructs a <code>ClassNotFoundException</code> with the
   87        * specified detail message and optional exception that was
   88        * raised while loading the class.
   89        *
   90        * @param s the detail message
   91        * @param ex the exception that was raised while loading the class
   92        * @since 1.2
   93        */
   94       public ClassNotFoundException(String s, Throwable ex) {
   95           super(s, null);  //  Disallow initCause
   96           this.ex = ex;
   97       }
   98   
   99       /**
  100        * Returns the exception that was raised if an error occurred while
  101        * attempting to load the class. Otherwise, returns <tt>null</tt>.
  102        *
  103        * <p>This method predates the general-purpose exception chaining facility.
  104        * The {@link Throwable#getCause()} method is now the preferred means of
  105        * obtaining this information.
  106        *
  107        * @return the <code>Exception</code> that was raised while loading a class
  108        * @since 1.2
  109        */
  110       public Throwable getException() {
  111           return ex;
  112       }
  113   
  114       /**
  115        * Returns the cause of this exception (the exception that was raised
  116        * if an error occurred while attempting to load the class; otherwise
  117        * <tt>null</tt>).
  118        *
  119        * @return  the cause of this exception.
  120        * @since   1.4
  121        */
  122       public Throwable getCause() {
  123           return ex;
  124       }
  125   }

Save This Page
Home » openjdk-7 » java » lang » [javadoc | source]