Exception-カスタム例外

2400 ワード


BaseException異常継承Exceptionコードは次のとおりです.
 
package com.common.core.exception;

/**
 * Root Exception of all exceptions
 * @author zhouhaitao
 */
public class BaseException extends Exception {
	private static final long serialVersionUID = 6775179545328979398L;

	/**
	 *  
	 */
	public BaseException() {
		super();
	}

	/**
	 * @param arg0
	 */
	public BaseException(String arg0) {
		super(arg0);
	}

	/**
	 * @param arg0
	 * @param arg1
	 */
	public BaseException(String arg0, Throwable arg1) {
		super(arg0, arg1);
	}

	/**
	 * @param arg0
	 */
	public BaseException(Throwable arg0) {
		super(arg0);
	}
}

 
   
 
サービスでカスタム例外を定義するには、次の手順に従います.
 
package com.rs.common.core.exception;

public class BaseServiceException extends BaseException {
	private static final long serialVersionUID = 3449623024482478847L;

	public BaseServiceException(String arg0, Throwable arg1) {
		super(arg0, arg1);
	}

	public BaseServiceException(String arg0) {
		super(arg0);
	}
}

 
 
 
具体的なサービスで定義された例外継承baseException:
 
package com.common.core.service.exception;
import com.common.core.exception.BaseServiceException;
public class UserServiceException extends BaseServiceException {

	public UserServiceException(String arg0) {
		super(arg0);
	}
	
	public UserServiceException(String arg0, Throwable arg1){
		super(arg0, arg1);
	}

	private static final long serialVersionUID = 9155249210877803457L;

}

 
try-catchにカスタム例外を投げ出す.
public void addUser(User user) throws UserExistsException,
			UserServiceException {
		// TODO Auto-generated method stub
		try {
			userDao.add(user);
		} catch (DatabaseException e) {
			// TODO Auto-generated catch block
			logger.error("DatabaseException:",e);
			throw new UserServiceException("DatabaseException",e);
		}
	}

 
最後にActionでserviceのメソッドを呼び出し、異常処理を行う.できます.