001 package com.mockrunner.struts; 002 003 import javax.servlet.http.HttpServletRequest; 004 import javax.servlet.http.HttpServletResponse; 005 006 import org.apache.struts.action.ActionForm; 007 import org.apache.struts.action.ActionMapping; 008 009 /** 010 * Generic interface for exception handlers. The default implementation 011 * is {@link DefaultExceptionHandlerConfig} and uses the Struts 012 * exception handling mechanism. In special cases, you may provide your own 013 * implementations of this interface, that may be independent from 014 * the Struts exception handling mechanism. 015 * Exception handler are called if an action throws an exception. 016 * Use {@link ActionTestModule#addExceptionHandler} to register an exception handler. 017 */ 018 public interface ExceptionHandlerConfig 019 { 020 /** 021 * Returns if this handler is able to handle the exception. 022 * @return <code>true</code> if this handler is able to handle the exception, 023 * <code>false</code> otherwise 024 */ 025 public boolean canHandle(Exception exception); 026 027 /** 028 * Handles the exception. 029 * @param exception the exception 030 * @param mapping the current <code>ActionMapping</code> 031 * @param form the current <code>ActionForm</code> 032 * @param request the current request 033 * @param response the current response 034 * @return the handler return value, usually an <code>ActionForward</code>, 035 * but may be any object 036 */ 037 public Object handle(Exception exception, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception; 038 }