[DefaultErrorAttributes \ (Spring Boot 2 \ .3 \ .0 \ .RELEASE API )](https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/api/org/springframework/boot Les attributs des informations d'erreur qui peuvent être acquises sont décrits dans /web/servlet/error/DefaultErrorAttributes.html).
--Timelink: heure à laquelle l'erreur a été extraite --status: code d'état --error: raison de l'erreur --exception: nom de la classe d'exception racine --message: message d'exception --errors: Plusieurs ObjectErrors (binding-errors) définis dans BindingResult --trace: trace de pile d'exception --path: chemin de l'URL lorsqu'une exception se produit
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
import org.springframework.web.context.request.ServletWebRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
public class ErrorAttributesGetter22 {
/**
*Extraire les informations d'erreur.
*
* @param req demande d'informations
* @renvoyer les informations d'erreur
*/
public static Map<String, Object> getErrorAttributes(HttpServletRequest req) {
//Obtenez des informations détaillées sur les erreurs avec la classe DefaultErrorAttributes
ServletWebRequest swr = new ServletWebRequest(req);
DefaultErrorAttributes dea = new DefaultErrorAttributes(true);
return dea.getErrorAttributes(swr, true);
}
}
En utilisant la classe ErrorAttributeOptions, il est désormais possible de choisir d'acquérir ou non certains attributs (de les laisser comme informations d'erreur).
import org.springframework.boot.web.error.ErrorAttributeOptions;
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
import org.springframework.web.context.request.ServletWebRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
public class ErrorAttributesGetter23 {
/**
*Extraire les informations d'erreur.
*
* @param req demande d'informations
* @renvoyer les informations d'erreur
*/
public static Map<String, Object> getErrorAttributes(HttpServletRequest req) {
//Obtenez des informations détaillées sur les erreurs avec la classe DefaultErrorAttributes
ServletWebRequest swr = new ServletWebRequest(req);
DefaultErrorAttributes dea = new DefaultErrorAttributes();
ErrorAttributeOptions eao = ErrorAttributeOptions.of(
ErrorAttributeOptions.Include.BINDING_ERRORS,
ErrorAttributeOptions.Include.EXCEPTION,
ErrorAttributeOptions.Include.MESSAGE,
ErrorAttributeOptions.Include.STACK_TRACE);
return dea.getErrorAttributes(swr, eao);
}
}
Le code source de la pièce supprimée des informations d'erreur pour l'élément qui n'est pas la cible d'acquisition.
spring-boot/DefaultErrorAttributes.java at v2.3.1.RELEASE · spring-projects/spring-boot · GitHub
@Override
public Map<String, Object> getErrorAttributes(ServerRequest request, ErrorAttributeOptions options) {
Map<String, Object> errorAttributes = getErrorAttributes(request, options.isIncluded(Include.STACK_TRACE));
if (this.includeException != null) {
options = options.including(Include.EXCEPTION);
}
if (!options.isIncluded(Include.EXCEPTION)) {
errorAttributes.remove("exception");
}
if (!options.isIncluded(Include.STACK_TRACE)) {
errorAttributes.remove("trace");
}
if (!options.isIncluded(Include.MESSAGE) && errorAttributes.get("message") != null) {
errorAttributes.put("message", "");
}
if (!options.isIncluded(Include.BINDING_ERRORS)) {
errorAttributes.remove("errors");
}
return errorAttributes;
}
Recommended Posts