[DefaultErrorAttributes \ (Spring Boot 2 \ .3 \ .0 \ .RELEASE API )](https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/api/org/springframework/boot Die Attribute der Fehlerinformationen, die erfasst werden können, sind in /web/servlet/error/DefaultErrorAttributes.html) beschrieben.
--Timelink: Zeitpunkt, zu dem der Fehler extrahiert wurde --status: Statuscode --error: Grund für den Fehler --exception: Name der Root-Ausnahmeklasse --message: Ausnahmemeldung --errors: Mehrere ObjectErrors (Bindungsfehler) in BindingResult festgelegt --trace: Exception Stack Trace --path: URL-Pfad, wenn eine Ausnahme auftritt
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 {
/**
*Fehlerinformationen extrahieren.
*
* @param req Anforderungsinformationen
* @Fehlerinformationen zurückgeben
*/
public static Map<String, Object> getErrorAttributes(HttpServletRequest req) {
//Detaillierte Fehlerinformationen erhalten Sie mit der DefaultErrorAttributes-Klasse
ServletWebRequest swr = new ServletWebRequest(req);
DefaultErrorAttributes dea = new DefaultErrorAttributes(true);
return dea.getErrorAttributes(swr, true);
}
}
Mithilfe der ErrorAttributeOptions-Klasse können Sie jetzt auswählen, ob einige Attribute erfasst werden sollen (ob sie als Fehlerinformationen belassen werden sollen).
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 {
/**
*Fehlerinformationen extrahieren.
*
* @param req Anforderungsinformationen
* @Fehlerinformationen zurückgeben
*/
public static Map<String, Object> getErrorAttributes(HttpServletRequest req) {
//Detaillierte Fehlerinformationen erhalten Sie mit der DefaultErrorAttributes-Klasse
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);
}
}
Der Quellcode des Teils, der aus den Fehlerinformationen für das Element gelöscht wurde, das nicht das Erfassungsziel ist.
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