/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin; import java.text.MessageFormat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 基本异常处理类 * <p> * 显示层通过该异常,显示逻辑层错误或异常。 逻辑层需要显示的异常和错误,必须继承该类。 * * @author 王伟 */ public class BaseException extends Exception { private static final long serialVersionUID = 8118140909982575423L; private static final Logger logger = LoggerFactory.getLogger(BaseException.class); private String pageMessage; /** * 构造详细消息为null新异常 * *@param cause * 传入异常 */ public BaseException() { this(null, null); } /** * 构造指定详细消息的新异常 * <p> * 一般处理逻辑异常信息 * * @param message * 异常(错误)消息 * @param pageMessage * 页面显示异常(错误)消息 */ public BaseException(String message, String pageMessage) { this(message, pageMessage, null, null); } /** *构造指定详细消息的新异常 * <p> * 一般处理逻辑异常信息,pageMessage可以注入参数 * * @see java.text.MessageFormat * * @param message * 异常(错误)消息 * @param pageMessage * 页面显示异常(错误)消息 * @param parameters * 页面异常消息参数 */ public BaseException(String message, String pageMessage, Object[] parameters) { this(message, pageMessage, parameters, null); } /** * 构造带指定详细消息和原因的新异常 * * @param message * 异常(错误)消息 * @param pageMessage * 页面显示异常(错误)消息 * @param cause * 传入异常 */ public BaseException(String message, String pageMessage, Throwable cause) { this(message, pageMessage, null, cause); } /** * 构造带指定详细消息和原因的新异常 * * <p> * pageMessage可以注入参数 * </p> * * @param message * 异常(错误)消息 * @param pageMessage * 页面显示异常(错误)消息 * @param parameters * 页面异常消息参数 * @param cause * 传入异常 */ public BaseException(String message, String pageMessage, Object[] parameters, Throwable cause) { super(message, cause); if (cause != null) { logger.error(cause.toString()); } if (parameters == null) { this.pageMessage = pageMessage; } else { this.pageMessage = MessageFormat.format(pageMessage, parameters); } } /** * 构造带指定详细消息和原因的新异常 * * @param cause */ public BaseException(Throwable cause) { this(null, null, cause); } /** * 显示层得到逻辑异常(错误)信息并显示 * * @return 异常(错误)信息 */ public String getPageMessage() { return (this.pageMessage == null ? "" : this.pageMessage); } }