Java - 自定义异常

在编码中通常情况下,可能发生异常的地方都需要尝试捕获并抛出异常,这里我们使用自定义异常来解决该问题,以便让Log4j来统一输出错误日志,也能更好的管理我们的异常。

一、创建一个类并继承RuntimeException(当然这里也可以继承Throwable或者其它Java内置的异常类)
package com.wmli.family.exception;

import org.apache.log4j.Logger;

/**
 * 自定义数据访问层异常
 * @author wmli
 * Create on 2011-2-18
 * 
 * 重写父类的构造方法即可,是不是很简单?
 * 里面自己随便处理,呵呵
 */
@SuppressWarnings("serial")
public class DaoException extends RuntimeException {
	private static Logger logger = Logger.getLogger(DaoException.class);
	
	public DaoException() {
		super();
	}

	public DaoException(String message, Throwable cause) {
		super(message, cause);
		logger.error(message, cause);
	}

	public DaoException(String message) {
		super(message);
		logger.error(message);
	}

	public DaoException(Throwable cause) {
		super(cause);
		logger.error(cause);
	}
	
}


二、使用自定义异常
/**
 * 保存
 * @param article
 * @throws DaoException
 * 
 * 这是一个接口,我们申明抛出该异常
 */
public void save(Article article) throws DaoException;

//这里是具体实现,我们申明该异常并尝试抛出该异常,在前面接收即可
public void save(Article article) throws DaoException {
	PersistenceManager pm = PMF.get().getPersistenceManager();
	try {
		pm.makePersistent(article);
	} catch (Exception e) {
		throw new DaoException(e.getMessage(), e);
	}
}

你可能感兴趣的:(java,apache,log4j)