사용자 정의 예외 - 통합 레코드 - 차단기
3220 단어 spring 관련
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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring 트랜잭션(둘) - 트랜잭션의 전파 동작PROPAGATION_REQUIRED ① 트랜잭션 C가 있는 경우: PROPAGATIONREQUIRED가 수식한 서비스Hello1()과 서비스Hello2()는 서비스Hello3()의 사무에 모든 Propagation...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.