编程知识 cdmana.com

La couche de contrôle gère uniformément les exceptions, les questions d'entrevue par fil et les réponses

@ExceptionHandler:Utilisé dans certaines classes de gestionnaires et/Ou un commentaire dans la méthode Handler qui traite l'exception.

L'approche du gestionnaire qui utilise cette annotation permet une signature très flexible.Ils peuvent avoir les types de paramètres suivants,Dans n'importe quel ordre:

  • 1.Paramètres anormaux:Déclaré comme une exception générale ou plus spécifique.Pour déclarer des paramètres plus spécifiques,DisponiblevaluePour en être sûr.

  • 2.Demande et/Ou objet de réponse(Généralement deServlet API),Vous pouvez sélectionner n'importe quelle demande spécifique/Type de réponse:Par exemple: javax.servlet.http.HttpServletRequest

  • 3.Objet de session:En général.javax.servlet.http.HttpSession,Ce type de paramètre forcera la session correspondante,Le paramètre ne peut pas être vide,

  • 4.Actuellement demandé localjava.util.Locale

  • 5.java.io.InputStream / java.io.ReaderContenu de la demande d'accès

(Référence traduction de documents à partir du code source)

On n'a utilisé que le premier,Pour gérer les exceptions. Avant de regarder en arrièrejavaGestion des exceptions Il y a principalement ces mots clés:try catch finally throw throws Si une exception spécifique et explicite doit être lancée,Peut être utilisé try catchPour capturer,Si certaines exceptions ne sont pas traitées Lancer directement,Peut être utilisé throw( C'est surtout dans les déclarations qui sortent ),throws( C'est surtout dans la méthode de lancer ); Imaginez le Code précédent , Parfois, un morceau de code , Logique d'entreprise si complexe ,UntryIl y en a plusieurs.catch, Le Code semble redondant ;[email protected] @ExceptionHandler Traitement uniforme des exceptions à l'interception Se battre pour lancer différentes exceptions , Je peux faire différentes interceptions anormales , Traitement uniforme des informations anormales interceptées (Harmonisation des formats de données) Retour à l'avant ,Même en cas d'erreur, Les messages d'erreur sont également lisibles , Peut également verrouiller les problèmes plus rapidement .

Interlude:

@RestControllerAdvice Et @ControllerAdviceQuelle différence? [email protected] annotée,Comme vous pouvez le voir,@RestControllerAdviceInclus @[email protected] notes,Pour [email protected]@ExceptionHandler Interception uniforme comme exception (RetourjsonFormat des données), Une note supplémentaire est nécessaire @ResponseBody

controller Exception à la gestion unifiée des couches , Questions et réponses à l'entrevue thread _Interview

2.Exemples

  • 2.1 Gestion unifiée des exceptions

@RestControllerAdvice

@Slf4j

@Order(Ordered.HIGHEST_PRECEDENCE)

public class OverallExceptionHandler {

@ExceptionHandler

public CommonResult handException(Exception e){

return CommonResult.errorResult(ResultCode.SYSTEM_ERROR,e.getMessage());

}

@ExceptionHandler(value = UserException.class)

public CommonResult handUserExceptionHandler(UserException e){

return CommonResult.customErrorResult(null,e.getMessage(),null);

}

/**

  • Paramètre illisible

*/

@ExceptionHandler(value = HttpMessageNotReadableException.class)

public CommonResult handleHttpMessageNotReadableException(HttpMessageNotReadableException e) {

return CommonResult.errorResult(ResultCode.PARAM_IS_INVALID, e.getMessage());

}

}

Copier le Code

handException La méthode intercepte principalement : Aucune information d'exception n'a été interceptée pour le traitement

handUserExceptionHandler: Intercepter les messages d'exception lancés activement ( Cette exception est un message d'exception personnalisé )

handleHttpMessageNotReadableException: Le paramètre d'interception n'est pas lisible exception Quand cette anomalie jdk Il y a une anomalie à l'intérieur (Comme indiqué ci - dessus Pour différentes exceptions Vous pouvez faire différents traitements d'interception , Le message d'erreur retourné peut également être personnalisé Un tel message d'erreur peut localiser le problème plus rapidement )

  • 2.2 Exception personnalisée

public class UserException extends RuntimeException{

private static final long serialVersionUID = 1L;

private String code;

public UserException() {

super();

}

public UserException(String message) {

super(message);

this.code = ResultCode.EXISTING_ASSOCIATED_DATA.getCode();

}

public UserException(String code, String message){

super(message);

this.code = code;

}

public UserException(String message, Throwable cause) {

super(message, cause);

}

public UserException(Throwable cause) {

super(cause);

}

}

Copier le Code

Exception personnalisée Quelque chose d'inhabituel. java Exception qui n'est peut - être pas contenue dans Vous pouvez également personnaliser Ces exceptions peuvent également être interceptées par des intercepteurs C'est [email protected](value = UserException.class) Cela permet d'intercepter les exceptions personnalisées

  • 2.3 controller Une méthode de test écrite par calque

@PostMapping(value

《Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Notes d'apprentissage pour le développement de l'arrière - plan+La dernière vidéo d'architecture+Document d'information sur le code source du projet en direct》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 Partage open source du contenu complet

= “/testException”)

public void test1(){

throw new UserException(“ C'est une exception que j'ai lancée ”);

}

Copier le Code

Résumé

Cet article va de la base au niveau avancé au combat réel,De peu en profondeur,Prends ça.MySQLC'est très clair.,C'est clair.,C'est ce que j'ai vu de mieux jusqu'à présent.MySQLNotes d'étude,Je crois que si vous lisez attentivement cette note,,Qu'il s'agisse d'un problème au travail ou d'une question posée par un intervieweur, il est facile de le résoudre.!

MySQL50Tri des questions d'entrevue à haute fréquence:

controller Exception à la gestion unifiée des couches , Questions et réponses à l'entrevue thread _Java_02

Cet article a été publié par CODINGProjet Open Source:【Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Résumé de base notes d'étude+Dernière vidéo d'explication+Code source du projet opérationnel】Inclus

版权声明
本文为[Harmonios Learning]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/11/20211125172611807U.html

Scroll to Top