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のメソッドを呼び出し、異常処理を行う.できます.