Я работаю над весенним отдыхом API, и я хотел бы убедиться, что все работает нормально. Я хотел бы зарегистрировать ошибку соединения с базой данных ненормального поведения среди других, я работаю с базой данных couchbase и получаю ответ конечной точки, например, для такого рода исключения: CouchbaseQueryExecutionException
следующее сообщение: Unable to execute query due to the following n1ql errors: \n{\"msg\":\"No index available on keyspace kids_club that matches your query. Use CREATE INDEX or CREATE PRIMARY INDEX to create an index, or check that your expected index is online.\",\"code\":4000}
и оченьдлинная трассировка.
Для этого я нашел в Интернете решение, которое расширяет ResponseEntityExceptionHandler и переопределяет метод handleExceptionInternal следующим образом:
@ControllerAdvice
public class RestExceptionHandler extends ResponseEntityExceptionHandler {
private static String DEFAULT_VALIDATION_ERROR_CODE = "KC-0020";
@ExceptionHandler(MiddlewareException.class)
protected ResponseEntity<ResponseBody> handleKidsClubException(MiddlewareException ex) {
return buildErrorResponse(HttpStatus.valueOf(ex.getHttpStatus()), ex.toError());
}
@ExceptionHandler(ServiceUnavailableException.class)
protected ResponseEntity<ResponseBody> handleServiceUnavailable(ServiceUnavailableException ex) {
return buildErrorResponse(INTERNAL_SERVER_ERROR, ex);
}
@ExceptionHandler(NoSuchElementException.class)
protected ResponseEntity<ResponseBody> handleNoFoundElement(NoSuchElementException ex) {
return buildErrorResponse(NOT_FOUND, ex);
}
@ExceptionHandler(CouchbaseQueryExecutionException.class)
protected ResponseEntity<ResponseBody> handleCouchbaseQueryException(ConstraintViolationException ex) {
return buildErrorResponse(BAD_REQUEST, ex);
}
}
Но я не могу поймать какой-либо тип внутреннего сервераОшибка в этом пути. Кажется, что весна - это ручка и создание окончательного сообщения для пользователя. Есть идеи, чтобы решить эту проблему? Спасибо.