自定义运行时异常ActionAccessException,在抛出时记录日志

如果代码里到处都是logger,明显不太好维护,而显得凌乱。

我们在throw时就把日志记录了,是最好的选择,代码如下:

package com.uet.common.exception;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 * 数据获得:运行时RuntimeException
 * <h3>使用场景</h3>
 * <p>Action层使用</p>
 * @author huangjs
 * @version 2014-6-18 23:34:44
 */
public class ActionAccessException extends RuntimeException {
	private static final long serialVersionUID = 1L;

	public ActionAccessException() {
		super();
		getLogger().error("Exception", this);
	}

	public ActionAccessException(String message, Throwable cause) {
		super(message, cause);
		getLogger().error(message, cause);
	}

	public ActionAccessException(String message) {
		super(message);
		getLogger().error(message, this);
	}

	public ActionAccessException(Throwable cause) {
		super(cause);
		getLogger().error(cause.getMessage(), cause);
	}

	/**
	 * This method returns a logger which can be used by a subclass. The logger
	 * is specific for the instance of the Exception (the subclass).
	 * 
	 * @return the class-specific Logger
	 */
	protected Logger getLogger() {
		return LoggerFactory.getLogger(getClass());
	}
}



草木全
分享到:

更多的时候,action不需要手工捕获异常,使用异常的拦截统一处理。


0
有的时候,不需要记录该异常,最好加一个logEnable的参数,来标签是否记录。可以默认记录或不记录
0
共 2 条   当前1/1页

© 2014 究问社区 copyRight 豫ICP备13003319号-1