diff options
Diffstat (limited to 'src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java')
-rw-r--r-- | src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java b/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java new file mode 100644 index 0000000..95ec127 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/exception/RestExceptionHandler.java @@ -0,0 +1,31 @@ +package org.onap.a1pesimulator.exception; + +import static org.springframework.http.HttpStatus.NOT_FOUND; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@Order(Ordered.HIGHEST_PRECEDENCE) +@ControllerAdvice +public class RestExceptionHandler extends ResponseEntityExceptionHandler { + + private static final Logger log = LoggerFactory.getLogger(RestExceptionHandler.class); + + @ExceptionHandler(CellNotFoundException.class) + protected ResponseEntity<Object> handleEntityNotFound(CellNotFoundException ex) { + ApiError apiError = new ApiError(NOT_FOUND); + apiError.setMessage(ex.getMessage()); + return buildResponseEntity(apiError); + } + + private ResponseEntity<Object> buildResponseEntity(ApiError apiError) { + log.error(apiError.getMessage()); + return new ResponseEntity<>(apiError.getMessage(), apiError.getStatus()); + } +}
\ No newline at end of file |