Heim  >  Artikel  >  Java  >  Ausführliche Erläuterung des Beispielcodes für die einheitliche Spring Boot-Ausnahmebehandlung

Ausführliche Erläuterung des Beispielcodes für die einheitliche Spring Boot-Ausnahmebehandlung

黄舟
黄舟Original
2017-03-09 10:39:331779Durchsuche

Bei der Entwicklung von Webanwendungen kommt es sehr häufig zu Fehlern bei der Anfrageverarbeitung. Zu diesem Zeitpunkt ist eine einheitliche Ausnahmebehandlung erforderlich. In diesem Artikel werden hauptsächlich relevante Informationen zur Implementierung einer einheitlichen Ausnahmebehandlung vorgestellt.

Spring Boot verfügt standardmäßig über eine Fehlerzuordnung, diese Fehlerseite ist jedoch nicht sehr benutzerfreundlich.

Einheitliche Ausnahmebehandlung

Definieren Sie eine Klasse für die einheitliche Ausnahmebehandlung, indem Sie @ControllerAdvice verwenden, anstatt sie einzeln in jedem Controller zu definieren.

@ExceptionHandler wird verwendet, um den Funktionstyp für die Funktion zu definieren und schließlich das Ausnahmeobjekt und die Anforderungs-URL der URL zuzuordnen.

@ControllerAdvice
class ExceptionTranslator {
 public static final String DEFAULT_ERROR_VIEW = "error";
 @ExceptionHandler(value = Exception.class)
 public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
  ModelAndView mav = new ModelAndView();
  mav.addObject("exception", e);
  mav.addObject("url", req.getRequestURL());
  mav.setViewName(DEFAULT_ERROR_VIEW);
  return mav;
 }
}

Implementieren Sie die Seitenanzeige „error.html“

Erstellen Sie „error.html“ im Vorlagenverzeichnis.

Zum Beispiel:

<!DOCTYPE html> 
<html> 
<head lang="en"> 
 <meta charset="UTF-8" />
 <title>统一异常处理</title>
</head> 
<body> 
 <h1>Error Handler</h1>
 <p th:text="${url}"></p>
 <p th:text="${exception.message}"></p>
</body> 
</html>

Rückgabe im Json-Format

Nur Durch Hinzufügen von @ResponseBody nach @ExceptionHandler kann der Inhalt der Verarbeitungsfunktionsrückgabe in das JSON-Format

konvertiert werden, um ein JSON-Rückgabeobjekt zu erstellen, z. B.:

public class ErrorDTO implements Serializable {
 private static final long serialVersionUID = 1L;
 private final String message;
 private final String description;
 private List<FieldErrorDTO> fieldErrors;
 //getter和setter省略
}

Ausnahmebehandlung kann für die angegebene Ausnahme hinzugefügt werden

@ExceptionHandler(ConcurrencyFailureException.class)
 @ResponseStatus(HttpStatus.CONFLICT)
 @ResponseBody
 public ErrorDTO processConcurencyError(ConcurrencyFailureException ex) {
  return new ErrorDTO(ErrorConstants.ERR_CONCURRENCY_FAILURE);
 }

ErrorConstants.ERR_CONCURRENCY_FAILURE ist eine definierte Ausnahmemeldung.

Zusammenfassung

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Beispielcodes für die einheitliche Spring Boot-Ausnahmebehandlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn