SpringBoot le code propre à sens unique de la série: gestionnaire global d'exception

introduction

voir en ligne cette phrase est très intéressant de part vous, cette phrase est: vous avez écrit le code caché vous lisez le livre, vu le paysage, marchait dans les rues, écouter de la musique et aimé personnes . Bien que ce soit une blague, mais elle reflète aussi le code propre et élégant que vous écrivez pour les auto-demandes et encouragements.

Benpian dès le début, je vais écrire sur l'utilisation d' SpringBootune série d'articles le développement du projet, comment nettoyer le code de pratique. mauvais code est non seulement BUGune centaine, ne favorise pas le développement et l' expansion équipe. Par conséquent, la préparation du code propre et élégant peut non seulement fournir l'efficacité des équipes de développement ont également propices à l' expansion future. Moins de codage, plus la pensée Pensez plus, moins de code

  • gestionnaire global d'exception
  • résumé

Tout d'abord, le gestionnaire d'exception mondiale

1, en utilisant la poignée exceptions annotation @RestControllerAdvice
(1) défini classe des exceptions

public class ProgramException extends RuntimeException{

    //错误码
    private String code;

    //错误信息
    private String msg;

    public ProgramException(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

(2) définissent l'objet de réponse global

public class ReponseData {

    //错误码
    private String code;

    //错误信息
    private String msg;

    //响应数据
    private Object data;

    public ReponseData(String code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    
  	public ReponseData(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

(3) définir le manipulateur d'exception global

@RestControllerAdvice
public class BusinessServiceExceptionHandler {
private Logger logger = LoggerFactory.getLogger(BusinessServiceExceptionHandler.class);
	
	@ExceptionHandler(ProgramException.class)
	@ResponseStatus(ProgramException.class)
	public ResponseData handleException(ProgramException e, HttpServletRequest req){
	return new ResponseData(e.getCode(), e.getMsg());
	}
}

Comparatif recommandé d'utiliser cette méthode, simple, surtout maintenant extrémité avant de la séparation, l'extrémité arrière de l'interface pour fournir une extrémité ouverte reposant unifiée, si une exception se produit, le message d'erreur peut être renvoyée par un gestionnaire d'exception unifiée.

2, en utilisant la gestion des exceptions globale SimpleMappingExceptionResolver

@Configuration
public class GlobalExceptionResolver extends SimpleMappingExceptionResolver{
	
private static Logger log = LoggerFactory.getLogger(GlobalExceptionResolver.class);
	
	public GlobalExceptionResolver() {
		setOrder(0);
	}

	

En second lieu, résumé

Un code propre comprend non seulement le code d'affaires réel du projet, y compris un certain niveau du système. gestionnaire global d'exception appartenant à la propreté du code au niveau du système. Si nous avons fait notre projet plus une ville, un gestionnaire global d'exception similaire, intercepteurs et est donc équivalent au système de drainage de la ville, la gestion des câbles, et ainsi de suite. Ces installations ont organisé un impact direct sur le fonctionnement de toute la ville. Ensuite, le niveau du projet, le niveau du système et le code propre est de rendre le projet peut fonctionner plus efficacement.

发布了88 篇原创文章 · 获赞 49 · 访问量 10万+

Je suppose que tu aimes

Origine blog.csdn.net/Diamond_Tao/article/details/93981488
conseillé
Classement