Вот мой глобальный обработчик исключений:
Код: Выделить всё
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(DataConflictException.class)
public ResponseEntity handleDataConflict(DataConflictException ex) {
Map body = new LinkedHashMap();
body.put("timestamp", LocalDateTime.now());
body.put("status", HttpStatus.CONFLICT.value());
body.put("error", "Data Conflict");
body.put("message", ex.getMessage());
return new ResponseEntity(body, HttpStatus.CONFLICT);
}
@ExceptionHandler(DataIntegrityViolationException.class)
public ResponseEntity handleDataIntegrityViolation(DataIntegrityViolationException ex) {
Map body = new LinkedHashMap();
body.put("timestamp", LocalDateTime.now());
body.put("status", HttpStatus.CONFLICT.value());
body.put("error", "Data Conflict");
body.put("message", ex.getMostSpecificCause().getMessage());
return new ResponseEntity(body, HttpStatus.CONFLICT);
}
@ExceptionHandler(Exception.class)
public ResponseEntity handleGenericException(Exception ex) {
Map body = new LinkedHashMap();
body.put("timestamp", LocalDateTime.now());
body.put("status", HttpStatus.INTERNAL_SERVER_ERROR.value());
body.put("error", "Internal Error");
body.put("message", ex.getMessage());
return new ResponseEntity(body, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Код: Выделить всё
{
"timestamp": "...",
"status": 409,
"error": "Data Conflict",
"message": "This email has already been registered"
}
Код: Выделить всё
{
"timestamp": "...",
"status": 500,
"error": "Internal Error",
"message": "could not execute statement [ERROR: duplicate key value violates unique constraint ...]"
}
Структура моего проекта такая:
Код: Выделить всё
com.salus.agenda
├── SalusApplication.java (@SpringBootApplication)
├── Configuration
│ ├── SecurityConfiguration.java
│ └── GlobalExceptionHandler.java
├── Controllers
├── Services
└── Repositories
Есть ли какая-либо причина, по которой @RestControllerAdvice может не регистрироваться или запускаться при запуске Render?
Может ли это быть связано с профилями Spring, фильтрами (например, моим фильтром JWT) или исключениями на уровне базы данных, происходящими до уровня контроллера?
Будут полезны любые идеи или советы по устранению неполадок. оценил.
Подробнее здесь: https://stackoverflow.com/questions/798 ... deployment
Мобильная версия