Como saber quais exceções tratar na minha api spring

Estou estudando APIs com spring. Na parte de fazer as handle exceptions me veio uma dúvida. Quais exceções devo tratar, até agora(e é o que eu encontro na maioria dos materiais) eu só tratei a “ResourceNotFoundException” e fiz uma “AllException”. Mas quais devo tratar, como saber qual a classe certa pra isso? Alguém tem uma dica?


@ControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<ExceptionResponse> handleAllException(Exception ex, WebRequest request) {
        ExceptionResponse response = new ExceptionResponse(LocalDateTime.now(),
                HttpStatus.BAD_REQUEST,
                "Error unknown",
                request.getDescription(false));
        response.getErrors().add(ex.getMessage());
        return new ResponseEntity<>(response, response.getStatus());
    }

    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<ExceptionResponse> handleNotFoundException(ResourceNotFoundException ex, WebRequest request) {
        ExceptionResponse response = new ExceptionResponse(LocalDateTime.now(),
                HttpStatus.NOT_FOUND,
                "Resource not found!",
                request.getDescription(false));
        response.getErrors().add(ex.getMessage());
        return new ResponseEntity<>(response, response.getStatus());
    }
}


Trate todas que são úteis para sua aplicação. Vejo que você já está tratando exceções de Not Found (quando um recurso não é encontrado) e Bad Request (quando o corpo da requisição não condiz com o esperado). Você pode tratar exceções Unauthorized, Forbidden, Internal Error, enfim, tudo que for útil pro seu caso.

1 curtida

Eu não sei o que são “Unauthorized, Forbidden, Internal Error” e quais são as classes que elas lançam, onde estudar isso?