Java tutorial
/* * Copyright (c) 2016 W.I.S.V. 'Christiaan Huygens' * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package ch.wisv.areafiftylan.exception; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.AccessDeniedException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import static ch.wisv.areafiftylan.utils.ResponseEntityBuilder.createResponseEntity; /** * This class handles exceptions for ALL Controllers. Whenever a Controller throws an exception that is listed here, the * corresponding method will be used to handle the exception. */ @ControllerAdvice class GlobalControllerExceptionHandler { @ExceptionHandler(AccessDeniedException.class) public ResponseEntity<?> handleAccessDeniedException(AccessDeniedException ex) { return createResponseEntity(HttpStatus.FORBIDDEN, "Access denied"); } @ExceptionHandler(DataIntegrityViolationException.class) public ResponseEntity<?> handleDataIntegrityViolation(DataIntegrityViolationException ex) { return createResponseEntity(HttpStatus.CONFLICT, ex.getMessage()); } @ExceptionHandler(IllegalStateException.class) public ResponseEntity<?> handleIllegalStateException(IllegalStateException ex) { return createResponseEntity(HttpStatus.BAD_REQUEST, ex.getMessage()); } @ExceptionHandler(OrderNotFoundException.class) public ResponseEntity<?> handleOrderNotFoundException(OrderNotFoundException ex) { return createResponseEntity(HttpStatus.NOT_FOUND, ex.getMessage()); } @ExceptionHandler(TokenNotFoundException.class) public ResponseEntity<?> handleTokenNotFoundException(TokenNotFoundException ex) { return createResponseEntity(HttpStatus.NOT_FOUND, ex.getMessage()); } @ExceptionHandler(InvalidTokenException.class) public ResponseEntity<?> handleInvalidTokenException(InvalidTokenException ex) { return createResponseEntity(HttpStatus.BAD_REQUEST, ex.getMessage()); } @ExceptionHandler(TicketNotFoundException.class) public ResponseEntity<?> handleTicketNotFoundException(TicketNotFoundException ex) { return createResponseEntity(HttpStatus.NOT_FOUND, ex.getMessage()); } @ExceptionHandler(InvalidTicketException.class) public ResponseEntity<?> handleInvalidTicketException(InvalidTicketException ex) { return createResponseEntity(HttpStatus.BAD_REQUEST, ex.getMessage()); } @ExceptionHandler(TicketAlreadyLinkedException.class) public ResponseEntity<?> handleInvalidRFIDException(TicketAlreadyLinkedException e) { return createResponseEntity(HttpStatus.CONFLICT, e.getMessage()); } }