ro.isdc.wro.WroRuntimeException Maven / Gradle / Ivy
/*
* Copyright (c) 2008. All rights reserved.
*/
package ro.isdc.wro;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ro.isdc.wro.model.resource.Resource;
/**
* Base Wro Runtime exception. All exceptions will extend this runtime exception.
*
* @author Alex Objelean
* @created Created on Nov 3, 2008
*/
public class WroRuntimeException
extends RuntimeException {
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(WroRuntimeException.class);
private Resource resource;
public WroRuntimeException(final String message, final Throwable cause) {
super(message, cause);
LOG.debug(message);
}
/**
* @param message
*/
public WroRuntimeException(final String message) {
this(message, null);
}
/**
* Logs the error of this exception. By default errors are logged with DEBUG level. This method will use ERROR level.
*/
public WroRuntimeException logError() {
LOG.error(getMessage());
return this;
}
/**
* Wraps original exception into {@link WroRuntimeException} and throw it.
*
* @param e
* the exception to wrap.
*/
public static WroRuntimeException wrap(final Exception e) {
return wrap(e, e.getMessage());
}
/**
* Wraps original exception into {@link WroRuntimeException} and throw it.
*
* @param e
* the exception to wrap.
* @param message
* the message of the exception to wrap.
*/
public static WroRuntimeException wrap(final Exception e, final String message) {
if (e instanceof WroRuntimeException) {
return (WroRuntimeException) e;
}
return new WroRuntimeException(message, e);
}
/**
* @param resourceUri
* The name of the resource being processed when exception occurs.
*/
public WroRuntimeException setResource(final Resource resource) {
this.resource = resource;
return this;
}
/**
* @return The processed {@link Resource} which caused the exception.
*/
public Resource getResource() {
return resource;
}
}