net.sf.basedb.util.extensions
Class RethrowErrorHandlerFactory
java.lang.Object
net.sf.basedb.util.extensions.LoggingErrorHandlerFactory
net.sf.basedb.util.extensions.RethrowErrorHandlerFactory
- All Implemented Interfaces:
- ErrorHandler<Action>, ErrorHandlerFactory<Action>
public class RethrowErrorHandlerFactory
- extends LoggingErrorHandlerFactory
Extension to the logging error handler factory that create error handlers
that re-throw the original exception. If the exception is an instance of
RuntimeException it is re-thrown as is, otherwise it is wrapped inside
a new RuntimeException. This factory is it's own error handler and the
implementation is thread-safe.
- Since:
- 2.17
- Author:
- Nicklas
- Last modified
- $Date: 2010-11-15 09:13:51 +0100 (Mon, 15 Nov 2010) $
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
private static final Logger log
RethrowErrorHandlerFactory
public RethrowErrorHandlerFactory()
getErrorHandler
public ErrorHandler<Action> getErrorHandler(InvokationContext<? extends Action> context)
- Description copied from interface:
ErrorHandlerFactory
- Get an error handler for the current context. This method is called
once for each request/use of an extension point. Errors that happen
when processing things related to this extension point will be
directed to the error handler returned by this method. The factory
may create a new or it may re-use the same error handler for each
request. If the error handler is re-used it must be thread-safe.
- Specified by:
getErrorHandler
in interface ErrorHandlerFactory<Action>
- Overrides:
getErrorHandler
in class LoggingErrorHandlerFactory
- Parameters:
context
- The current invokation context which is an extension
point context (the InvokationContext.getExtension()
method
is expected to return null)
handleError
public void handleError(InvokationContext<? extends Action> context,
Action action,
String message,
Throwable t)
- Description copied from interface:
ErrorHandler
- Handle an exception that has happened. It is up to
the error handler what should happen next. Typically,
error should always be logged but the error handler
may choose to re-throw the exception. If the exception
isn't already a runtime exception it must be wrapped.
Note that there are three stages in the extension
mechanism, which may cause some of the parameters to be null:
- Extension point intialization: Eg. when the render factory
is being prepared (context and action are both null)
- Extension intialization: Eg. when the action factory
is being prepared (action is null)
- Extension rendering: Eg. when rendering the actions of
a single extension (context and action are non-null)
- Specified by:
handleError
in interface ErrorHandler<Action>
- Overrides:
handleError
in class LoggingErrorHandlerFactory
- Parameters:
context
- The extension context, which can be nullaction
- The action that was being rendered when the
error happened, which can be nullmessage
- An optional error messaget
- The error