View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2005 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  
18  package ch.elca.el4j.services.exceptionhandler.handler;
19  
20  import org.aopalliance.intercept.MethodInvocation;
21  
22  import ch.elca.el4j.services.exceptionhandler.AbstractExceptionHandlerInterceptor;
23  import ch.elca.el4j.services.exceptionhandler.RetryException;
24  
25  /**
26   * An exception handler is a expert for handling some kind of exceptions.
27   *
28   * @svnLink $Revision: 3875 $;$Date: 2009-08-04 14:35:53 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/exception_handling/src/main/java/ch/elca/el4j/services/exceptionhandler/handler/ExceptionHandler.java $
29   *
30   * @author Andreas Bur (ABU)
31   */
32  public interface ExceptionHandler {
33  
34  	/**
35  	 * Handles the given exception that occurred in the invocation of the
36  	 * given {@link MethodInvocation}.
37  	 *
38  	 * @param t
39  	 *      The throwable to handle.
40  	 *
41  	 * @param exceptionInvoker
42  	 *      The exception invoker that called this exception handler.
43  	 *
44  	 * @param invocation
45  	 *      The invocation which has resulted in the given throwable.
46  	 *
47  	 * @return Returns an object that is treated as the original invocation's
48  	 *      return value.
49  	 *
50  	 * @throws RetryException
51  	 *      Signals that the complete invocation has to be rerun.
52  	 *
53  	 * @throws Throwable
54  	 *      Any exception thrown by the handler.
55  	 */
56  	public Object handleException(Throwable t,
57  		AbstractExceptionHandlerInterceptor exceptionInvoker,
58  		MethodInvocation invocation) throws RetryException, Throwable;
59  }