GlobalExceptionHandler.java
package api.exceptions;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import api.dtos.ErrorDto;
/**
* Global exception handler.
*/
@ControllerAdvice
public class GlobalExceptionHandler {
/**
* Handle EntityNotFoundException.
*
* @param ex Exception
* @return Http response
*/
@ExceptionHandler(EntityNotFoundException.class)
public ResponseEntity<ErrorDto> handleEntityNotFoundException(EntityNotFoundException ex) {
return new ResponseEntity<>(new ErrorDto(ex.getMessage()), HttpStatus.NOT_FOUND);
}
/**
* Handle IllegalArgumentException.
*
* @param ex Exception
* @return Http response
*/
@ExceptionHandler(IllegalArgumentException.class)
public ResponseEntity<ErrorDto> handleIllegalArgumentException(IllegalArgumentException ex) {
return new ResponseEntity<>(new ErrorDto(ex.getMessage()), HttpStatus.BAD_REQUEST);
}
/**
* Handle Throwable.
*
* @param ex Exception
* @return Http response
*/
@ExceptionHandler(Throwable.class)
public ResponseEntity<ErrorDto> handleThrowable(Throwable ex) {
return new ResponseEntity<>(new ErrorDto(ex.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
}
}