⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nestableexception.java

📁 一个Java持久层类库
💻 JAVA
字号:
/* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The end-user documentation included with the redistribution, if *    any, must include the following acknowledgement: *       "This product includes software developed by the *        Apache Software Foundation (http://www.apache.org/)." *    Alternately, this acknowledgement may appear in the software itself, *    if and wherever such third-party acknowledgements normally appear. * * 4. The names "The Jakarta Project", "Commons", and "Apache Software *    Foundation" must not be used to endorse or promote products derived *    from this software without prior written permission. For written *    permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache" *    nor may "Apache" appear in their names without prior written *    permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation.  For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */package org.hibernate.exception;import java.io.PrintStream;import java.io.PrintWriter;/** * The base class of all exceptions which can contain other exceptions. * <p/> * It is intended to ease the debugging by carrying on the information * about the exception which was caught and provoked throwing the * current exception. Catching and rethrowing may occur multiple * times, and provided that all exceptions except the first one * are descendands of <code>NestedException</code>, when the * exception is finally printed out using any of the <code> * printStackTrace()</code> methods, the stacktrace will contain * the information about all exceptions thrown and caught on * the way. * <p> Running the following program * <p><blockquote><pre> *  1 import org.apache.commons.lang.exception.NestableException; *  2 *  3 public class Test { *  4     public static void main( String[] args ) { *  5         try { *  6             a(); *  7         } catch(Exception e) { *  8             e.printStackTrace(); *  9         } * 10      } * 11 * 12      public static void a() throws Exception { * 13          try { * 14              b(); * 15          } catch(Exception e) { * 16              throw new NestableException("foo", e); * 17          } * 18      } * 19 * 20      public static void b() throws Exception { * 21          try { * 22              c(); * 23          } catch(Exception e) { * 24              throw new NestableException("bar", e); * 25          } * 26      } * 27 * 28      public static void c() throws Exception { * 29          throw new Exception("baz"); * 30      } * 31 } * </pre></blockquote> * <p>Yields the following stacktrace: * <p><blockquote><pre> * org.apache.commons.lang.exception.NestableException: foo *         at Test.a(Test.java:16) *         at Test.main(Test.java:6) * Caused by: org.apache.commons.lang.exception.NestableException: bar *         at Test.b(Test.java:24) *         at Test.a(Test.java:14) *         ... 1 more * Caused by: java.lang.Exception: baz *         at Test.c(Test.java:29) *         at Test.b(Test.java:22) *         ... 2 more * </pre></blockquote><br> * * @author <a href="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a> * @author <a href="mailto:dlr@collab.net">Daniel Rall</a> * @author <a href="mailto:knielsen@apache.org">Kasper Nielsen</a> * @author <a href="mailto:steven@caswell.name">Steven Caswell</a> * @version $Id: NestableException.java 4782 2004-11-21 00:11:27Z pgmjsd $ * @since 1.0 */public class NestableException extends Exception implements Nestable {	/**	 * The helper instance which contains much of the code which we	 * delegate to.	 */	protected NestableDelegate delegate = new NestableDelegate( this );	/**	 * Holds the reference to the exception or error that caused	 * this exception to be thrown.	 */	private Throwable cause = null;	/**	 * Constructs a new <code>NestableException</code> without specified	 * detail message.	 */	public NestableException() {		super();	}	/**	 * Constructs a new <code>NestableException</code> with specified	 * detail message.	 *	 * @param msg The error message.	 */	public NestableException(String msg) {		super( msg );	}	/**	 * Constructs a new <code>NestableException</code> with specified	 * nested <code>Throwable</code>.	 *	 * @param cause the exception or error that caused this exception to be	 *              thrown	 */	public NestableException(Throwable cause) {		super();		this.cause = cause;	}	/**	 * Constructs a new <code>NestableException</code> with specified	 * detail message and nested <code>Throwable</code>.	 *	 * @param msg   the error message	 * @param cause the exception or error that caused this exception to be	 *              thrown	 */	public NestableException(String msg, Throwable cause) {		super( msg );		this.cause = cause;	}	public Throwable getCause() {		return cause;	}	/**	 * Returns the detail message string of this throwable. If it was	 * created with a null message, returns the following:	 * ( cause==null ? null : cause.toString() ).	 */	public String getMessage() {		if ( super.getMessage() != null ) {			return super.getMessage();		}		else if ( cause != null ) {			return cause.toString();		}		else {			return null;		}	}	public String getMessage(int index) {		if ( index == 0 ) {			return super.getMessage();		}		else {			return delegate.getMessage( index );		}	}	public String[] getMessages() {		return delegate.getMessages();	}	public Throwable getThrowable(int index) {		return delegate.getThrowable( index );	}	public int getThrowableCount() {		return delegate.getThrowableCount();	}	public Throwable[] getThrowables() {		return delegate.getThrowables();	}	public int indexOfThrowable(Class type) {		return delegate.indexOfThrowable( type, 0 );	}	public int indexOfThrowable(Class type, int fromIndex) {		return delegate.indexOfThrowable( type, fromIndex );	}	public void printStackTrace() {		delegate.printStackTrace();	}	public void printStackTrace(PrintStream out) {		delegate.printStackTrace( out );	}	public void printStackTrace(PrintWriter out) {		delegate.printStackTrace( out );	}	public final void printPartialStackTrace(PrintWriter out) {		super.printStackTrace( out );	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -