사용자 정의 예외 - 통합 레코드 - 차단기

3220 단어 spring 관련
1. 예외 코드 생성
String a = "a3";
intb = Integer.parseInt(a);

 
2. 비정상 클래스 사용자 정의
상속 관계: DataAccessException상속 ServiceExceptioextends RestWebServiceException상속 Exception상속
이렇게 하면 Dao층 이상 투하 Data Access Exception 이렇게 서비스 층은 (하위 클래스의 이상) 덮어쓰고 네트워크에서rest 층으로rest 층으로rest Web Service Exception (또는 get 서비스 층 이상으로) 던질 수 있다
마지막으로 통일은 차단기, 차단은 이상으로 통일하여 처리한다.이렇게 하면 잘못된 줄 수를 인쇄할 수 있다는 장점이 있다.
만약try catch가 된다면try에서throw Exception에서만 줄 수를 기록합니다. 즉,throw 줄에서try의 어느 줄을 찾을 수 없는지 기록할 수 있습니다.
publicclass DataAccessException extends ServiceException {
	privatestaticfinallongserialVersionUID = 1L;
	private String retCd; //         
	private String msgDes; //          

	public DataAccessException() {
		super();
	}

	public DataAccessException(String message) {
		super(message);
		msgDes = message;
	}

	public DataAccessException(String retCd, String message) {
		super();
		this.retCd = retCd;
		this.msgDes = message;
	}
	public DataAccessException( Throwable throwable) {
		super(throwable);
	}
	public DataAccessException(String message,Throwable throwable) {
		super(message,throwable);
		msgDes = message;
	}
	public DataAccessException(String retCd, String message,Throwable throwable) {
		super(message,throwable);
		this.retCd = retCd;
		this.msgDes = message;
	}

 
publicclass ServiceException extends RestWebServiceException {
	privatestaticfinallongserialVersionUID = 1L;
	private String retCd; //         
	private String msgDes; //          
。。。  

 
publicclass RestWebServiceException extends Exception {
	privatestaticfinallongserialVersionUID = 1L;
	private String retCd; //         
	private String msgDes; //          

 
층과 서비스 층,rest층이 어떻게 처리하는지 봅시다.
//service         
	publicint addComUser(ComUser user) throwsServiceException{
		return comUserMapper.insert(user);
	}

 
         :
/**
 *      
 * @author:andy
 * @version:1.0
 */
publicclass ErrorInterceptor extends AbstractPhaseInterceptor {
	Logger logger = LoggerFactory.getLogger(getClass());  
	public ErrorInterceptor(String phase) {
		super(phase);
	}
	public ErrorInterceptor(){  
super(Phase.RECEIVE);  
    } 

	@Override
	publicvoid handleMessage(Message msg) throws Fault {
	}
	//                
publicvoid handleFault(Message message) {  
//          WebApplicationException
        Exception exeption=message.getContent(Exception.class); 
logger.error(exeption.getMessage(),exeption);//  logger.xxx("",e);2              ,          
    }  
}

 
//rest ,        ,    try catch。
@GET
	@Path("/getUserById/{id}")
	public ComUser getComUserById(@PathParam("id") intid) throws RestWebServiceException{
		ComUser user = null;
		user = comUserService.getComUserById(id);
		//    
		if(null == user){
			ResponseBuilder builder = Response.status(Status.BAD_REQUEST);
			builder.type(MediaType.APPLICATION_JSON);
			builder.entity(new ResultJson(ResultJson.FAILURE,"       "));
			thrownew WebApplicationException(builder.build());
		}
		
		return user;
	}

좋은 웹페이지 즐겨찾기