Springboot Learning - Paramètres globaux de gestion des exceptions (Retour à JSON)
besoin
illustrer
@ControllerAdvice
Cette annotation est une nouvelle annotation ajoutée après le printemps 2.3. Il est principalement utilisé pour fournir une assistance à certaines améliorations à faible invasif des besoins communs du contrôleur, et est utilisé sur la méthode d'annotation @Requestmapping.
@ExceptionHandler
Cette annotation est une annotation utilisée avec @ExceptionHandler. Il s'agit d'un gestionnaire d'erreurs personnalisé. Vous pouvez assembler la chaîne JSON par vous-même et revenir à la page.
Code
Créez une classe globale de gestion des exceptions comme suit:
Si différentes exceptions ont des opérations différentes à mettre en œuvre, il vous suffit de modifier la valeur de la valeur de @ exceptionhandler pour être différente. Plusieurs exceptions différentes peuvent être traitées en même temps, mais l'état d'inclusion ne peut pas se produire.
Importer javax.servlet.http.httpservletRequest; import org.springframework.web.bind.annotation.controlleradvice; import org.springframework.web.bind.annotation.exceptionhandler; import org.springframework.web.bind.annotation.responsebody; @ contrawing.web. GlobalexceptionHandler {/ ** * Toutes les exceptions erreurs signalées * @param request * @param exception * @return * @throws exception * / @ExceptionHandler (value = exception.class) public String allexceptionHandler (httpservletRequest request, exception exception) lance exception {exception.printstacktrace (); System.out.println ("J'ai signalé une erreur:" + exception.getLocalizedMessage ()); System.out.println ("J'ai signalé une erreur:" + exception.getCause ()); System.out.println ("J'ai signalé une erreur:" + exception.getsupprressed ()); System.out.println ("J'ai signalé une erreur:" + exception.getMessage ()); System.out.println ("J'ai signalé une erreur:" + exception.getStackTrace ()); Renvoie "Exception du serveur, veuillez contacter l'administrateur!"; }}Simulez une classe de lancement d'exception. L'exemple suivant est de lancer une exception de pointeur nul et le dénominateur n'est pas une exception
import org.springframework.steretype.controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.Responsebody; @ contrôleur @ requestMapping ("/ exceptionSt") @ réponse class exceptiontest {@requestmapping (") public") test () {message msg = null; msg.toString (); createException (); Retour "Je suis normal"; } private void createException () {int i = 5/0; }}Démarrer le Springboot, résultats d'exécution
Parce que la chaîne renvoyée, vous pouvez également utiliser la classe d'outils JSON pour le résumer et renvoyer une chaîne JSON
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.