在编码中通常情况下,可能发生异常的地方都需要尝试捕获并抛出异常,这里我们使用自定义异常来解决该问题,以便让Log4j来统一输出错误日志,也能更好的管理我们的异常。
[color=red][b]一、创建一个类并继承RuntimeException(当然这里也可以继承Throwable或者其它Java内置的异常类)[/b][/color]
[color=red][b]二、使用自定义异常[/b][/color]
[color=red][b]一、创建一个类并继承RuntimeException(当然这里也可以继承Throwable或者其它Java内置的异常类)[/b][/color]
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);
}
}
[color=red][b]二、使用自定义异常[/b][/color]
/**
* 保存
* @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);
}
}