2016-06-30 4 views

答えて

3

私たちは、次のことをやっている:

@Component 
public class ThrowableInterceptor 
    implements ExceptionMapper<Throwable> 
{ 
    private static final Logger logger = LoggerFactory.getLogger(ThrowableInterceptor.class); 

    @Override 
    public Response toResponse(Throwable exception) 
    { 
    logger.error(
     "Exception with caught", exception); 
    ErrorResponse errorResponse = new ErrorResponse(
     ServiceErrorCodes.GENERAL_ERROR.getErrorCode(), "unknown error"); 
    return Response.status(Response.Status.INTERNAL_SERVER_ERROR) 
     .type(MediaType.APPLICATION_JSON_TYPE) 
     .entity(errorResponse) 
     .build(); 
    } 
} 

あなたがそこにExceptionMapperであり、いくつかのThrowableがスローされる場合、それはこのインターセプタに行きますし、カスタムはErrorResponseに包まれます見ることができるように。このアプローチを使用して、例外処理をカスタマイズすることができます。つまり、validationException、dataAccessException e.t.c