1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public class CustomExceptionHandler extends ExceptionHandlerWrapper
{
private static final Logger logger = Logger.getLogger(CustomExceptionHandler.class.getName());
private ExceptionHandler exceptionHandler;
public CustomExceptionHandler(ExceptionHandler exceptionHandler)
{
this.exceptionHandler = exceptionHandler;
}
@Override
public ExceptionHandler getWrapped()
{
return exceptionHandler;
}
@Override
public void handle() throws FacesException
{
final Iterator<ExceptionQueuedEvent> queue = getUnhandledExceptionQueuedEvents().iterator();
while (queue.hasNext())
{
// take exceptions one by one
ExceptionQueuedEvent item = queue.next();
ExceptionQueuedEventContext exceptionQueuedEventContext = (ExceptionQueuedEventContext) item.getSource();
try
{
// log error
Throwable throwable = exceptionQueuedEventContext.getException();
logger.log(Level.SEVERE, "EXCEPTION: " + throwable.toString());
}
finally
{
// remove it from queue
queue.remove();
}
}
getWrapped().handle();
}
} |
Partager