1 /** 2 * Copyright 2003-2006 Greg Luck 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 18 package net.sf.ehcache; 19 20 /** 21 * A runtime Cache Exception, compatible with JDK1.3. 22 * <p/> 23 * Because JDK1.3 does not support chained exceptions or intial cause, this class has its own initialCause 24 * field and {@link #getInitialCause} accessor, to aid with debugging. The JDK1.4 initial cause mechanism is 25 * not used or populated. 26 * <p/> 27 * 28 * @author Greg Luck 29 * @version $Id: CacheException.java 52 2006-04-24 14:50:03Z gregluck $ 30 */ 31 public class CacheException extends RuntimeException { 32 33 34 /** 35 * Enables the cause to be recorded in a way that supports pre-JDK1.4 JDKs. 36 */ 37 private final Throwable initialCause; 38 39 /** 40 * Constructor for the CacheException object. 41 */ 42 public CacheException() { 43 super(); 44 initialCause = null; 45 } 46 47 /** 48 * Constructor for the CacheException object. 49 * @param message the exception detail message 50 */ 51 public CacheException(String message) { 52 super(message); 53 initialCause = null; 54 } 55 56 57 /** 58 * Constructor for the CacheException object. 59 * @param message the exception detail message 60 * @param initialCause the cause of the exception 61 */ 62 public CacheException(String message, Throwable initialCause) { 63 super(message); 64 this.initialCause = initialCause; 65 } 66 67 /** 68 * The intiial cause of this Exception. 69 * @return the cause or null if this exception has no deeper cause. 70 */ 71 public final Throwable getInitialCause() { 72 return initialCause; 73 } 74 75 76 }