Maison  >  Article  >  Java  >  Comment gérer les exceptions et les erreurs dans les applications Spring Boot

Comment gérer les exceptions et les erreurs dans les applications Spring Boot

WBOY
WBOYoriginal
2023-06-23 08:38:291703parcourir

Lors du développement d'applications Spring Boot, vous rencontrerez inévitablement diverses exceptions et erreurs, telles que des exceptions de connexion à la base de données, des erreurs de logique de code, des exceptions d'autorisation utilisateur, des déconnexions de connexion réseau, etc. Ces exceptions et erreurs ont un impact important sur la stabilité et la fiabilité de l'application. Nous devons donc traiter ces exceptions en temps opportun pour garantir que l'application puisse continuer à s'exécuter.

Cet article explique comment gérer les exceptions et les erreurs dans les applications Spring Boot, y compris la capture des exceptions, le débogage et la résolution des erreurs, la journalisation des exceptions, etc. Voici le contenu spécifique :

Capture et gestion des exceptions

  1. instruction try-catch

ajouté dans le code L'instruction try-catch est utilisée pour intercepter les exceptions pendant l'exécution du programme. Lorsqu'une exception se produit dans le programme, elle entrera dans le bloc d'instruction catch. Vous pouvez ajouter une logique dans ce bloc pour gérer l'exception, comme imprimer les informations sur l'exception dans le journal ou les renvoyer à l'utilisateur frontal.

Exemple de code :

try {
    // 可能发生异常的代码块
} catch (Exception e) {
    // 异常处理逻辑
}
  1. @Annotation ControllerAdvice

@ControllerAdvice est une annotation fournie par le framework Spring. Utiliser pour gérer globalement les exceptions dans Spring MVC. Grâce à cette annotation, nous pouvons définir une logique globale de gestion des exceptions et gérer toutes les exceptions de manière uniforme.

Exemple de code :

@ControllerAdvice
public class GlobalExceptionHandler {
 
    @ExceptionHandler(value = Exception.class)
    public ResponseEntity<Object> handleException(Exception e) {
        // 异常处理逻辑
        return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

Dans le code ci-dessus, la méthode handleException peut gérer toutes les exceptions d'exception et renvoyer un objet ResponseEntity avec des informations d'erreur et un code d'état HTTP. Dans l’application, lorsqu’une exception Exception se produit, cette méthode sera appelée pour la gestion des exceptions.

  1. Classe d'exception personnalisée

Lors du traitement des exceptions, nous pouvons également personnaliser les classes d'exception pour représenter des types spécifiques d'exceptions. En personnalisant les classes d'exceptions, nous pouvons lancer des objets d'exception dans le programme pour rendre le programme plus clair et plus facile à comprendre. En même temps, nous pouvons également effectuer une gestion ciblée des exceptions dans le gestionnaire d'exceptions global.

Exemple de code :

// 自定义异常类
public class MyException extends Exception {
 
    public MyException(String message) {
        super(message);
    }
}

// 抛出自定义异常
if (someCondition) {
    throw new MyException("发生了 MyException 异常");
}

// 异常处理逻辑
@ControllerAdvice
public class GlobalExceptionHandler {
 
    @ExceptionHandler(value = MyException.class)
    public ResponseEntity<Object> handleMyException(MyException e) {
        // 自定义异常处理逻辑
        return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

Dans le code ci-dessus, nous définissons une classe d'exception MyException, qui sera levée lorsque le programme remplit certaines conditions. Dans le gestionnaire d'exceptions global, nous utilisons l'annotation @ExceptionHandler(value = MyException.class) pour indiquer que la méthode peut gérer les exceptions de type MyException.

Débogage et résolution des erreurs

  1. Débogage en mode débogage

Le débogage est la clé pour résoudre les erreurs d'application. En déboguant un programme, nous pouvons afficher des informations telles que l'état du programme, les valeurs des variables et les chemins d'exécution pour trouver la cause des erreurs. Dans une application Spring Boot, nous pouvons déboguer en définissant le niveau de journalisation sur DEBUG.

Ajoutez le code suivant dans le fichier application.properties :

logging.level.root=DEBUG

Dans le code ci-dessus, définissez la racine du niveau de journalisation sur DEBUG. Lors de l'exécution du programme, le journal du programme sera affiché. afficher plus d'informations.

  1. Logging

La journalisation des journaux d'erreurs est un moyen efficace de rechercher des erreurs. L'application Spring Boot est livrée avec un cadre de journalisation - logback, grâce auquel nous pouvons enregistrer des journaux d'erreurs. Dans le fichier logback.xml, nous pouvons configurer le format de sortie du journal, le chemin de stockage du fichier journal, etc.

Exemple de code :

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/springbootdemo.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>logs/springbootdemo.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
    </appender>
 
    <logger name="com.yourpackage" level="INFO"/>
 
    <root level="INFO">
        <appender-ref ref="fileAppender"/>
    </root>
</configuration>

Dans le code ci-dessus, nous avons ajouté un appender nommé fileAppender pour afficher le journal dans le fichier spécifié. Parmi eux, RollingPolicy est utilisé pour configurer la politique de roulement des fichiers, maxFileSize définit la taille d'un seul fichier journal, maxHistory définit le nombre de jours de stockage des fichiers journaux et totalSizeCap définit la taille totale des fichiers journaux.

Conclusion

Dans les applications Spring Boot, la gestion des exceptions et des erreurs est un élément très important. Grâce à une capture et une gestion appropriées des exceptions, à des compétences de débogage et à une journalisation, nous pouvons garantir la stabilité et la fiabilité du programme, offrant ainsi aux utilisateurs de meilleurs services.

Ci-dessus sont quelques conseils et méthodes de base sur la façon de gérer les exceptions et les erreurs dans les applications Spring Boot. J'espère que cela sera utile à tout le monde.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn