Boas colegas, como estão? Estou a estudar/rever como desenvolver aplicações java para web com springboot e thymeleaf… Entretanto, estou a criar uma página de default (/error) que será disparada quando ocorrer uma exception no programa. Nessa página gostaria que houvesse o output do erro, url e código de status; consegui recuperar a url e mensagem de exception, mas estou com dificuldade em recuperar o código de erro de status http. Podem-me ajudar?
Abaixo deixo o código:
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.ModelAndView;
import jakarta.servlet.http.HttpServletRequest;
@ControllerAdvice
public class GlobalExceptionHandler {
@ResponseStatus(HttpStatus.CONFLICT)
@ExceptionHandler(Exception.class)
public ModelAndView handleAllExceptions(Exception exception, HttpServletRequest request) throws Exception {
if(AnnotationUtils.findAnnotation(exception.getClass(), ResponseStatus.class) != null)
throw exception;
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("exceptionError", exception);
modelAndView.addObject("urlError", request.getRequestURL());
modelAndView.setViewName("error");
return modelAndView;
}
}