ApplicationException.java
- package cn.home1.oss.lib.errorhandle.api;
- import static com.google.common.base.Preconditions.checkNotNull;
- import com.google.common.base.MoreObjects;
- import lombok.EqualsAndHashCode;
- import lombok.Getter;
- import org.springframework.http.HttpStatus;
- import java.io.Serializable;
- import java.util.Map;
- /**
- * 应用抛出的通用错误信息.
- *
- * <p>
- * Created by zhanghaolun on 16/7/1.
- * </p>
- */
- //@JsonInclude(JsonInclude.Include.NON_EMPTY) // for Jackson 2.x
- //@JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY) // for Jackson 1.x
- //@XmlRootElement(name = "applicationError") // for JAXB
- @EqualsAndHashCode(callSuper = false, of = {"status", "template"})
- @Getter
- public final class ApplicationException extends RuntimeException implements Serializable {
- private static final long serialVersionUID = 1L;
- private static final String APPLICATION_EXCEPTION = "application exception";
- private final HttpStatus status;
- private final String template;
- private final Map<String, Serializable> contextVariables;
- public ApplicationException( //
- final HttpStatus status, //
- final String template, //
- final Map<String, Serializable> contextVariables //
- ) {
- super(APPLICATION_EXCEPTION);
- this.status = checkNotNull(status, "status must not null");
- this.template = checkNotNull(template, "template must not null");
- this.contextVariables = checkNotNull(contextVariables, "contextVariables must not null");
- }
- public static Boolean isApplicationError(final Throwable throwable) {
- return throwable != null && ApplicationException.class.isAssignableFrom(throwable.getClass());
- }
- public Map<String, Serializable> getContextVariables() {
- return this.contextVariables;
- }
- public HttpStatus getStatus() {
- return this.status;
- }
- public String getTemplate() {
- return this.template;
- }
- @Override
- public String toString() {
- final MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(ApplicationException.class)
- .add("status", this.status)
- .add("template", this.template);
- if (this.contextVariables != null) {
- this.contextVariables.entrySet().forEach(entry -> toStringHelper.add(entry.getKey(), entry.getValue()));
- }
- return toStringHelper.toString();
- }
- }