2023年11月29日发(作者:)

springboot全局异常处理,⼲掉trycatch

写在前⾯

SpringBoot项⽬进⾏全局异常的处理是⾮常有必要的,不仅处理异常⽅便,⽽且可以优化代码,⼲掉try catch。本篇⽂章基于spring

boot。

处理500异常

⾃定义基础接⼝类

public interface BaseErrorInfoInterface {

/** 错误码*/

int getResultCode();

/** 错误描述*/

String getResultMsg();

}

⾃定义枚举类

public enum CommonEnum implements BaseErrorInfoInterface {

// 数据操作错误定义

SUCCESS(200, "成功!"),

BODY_NOT_MATCH(400,"请求的数据格式不符!"),

SIGNATURE_NOT_MATCH(401,"请求的数字签名不匹配!"),

NOT_FOUND(404, "未找到该资源!"),

INTERNAL_SERVER_ERROR(500, "服务器内部错误!"),

SERVER_BUSY(503,"服务器正忙,请稍后再试!")

;

/** 错误码 */

private int resultCode;

/** 错误描述 */

private String errorMessage;

ode = errorCode;

essage = errorMessage;

ionMessage = exceptionMessage;

/**

* 成功

* @param data

@ControllerAdvice

public class GlobalExceptionHandler {

/**

* 处理⾃定义的业务异常

* @param req

* @param e

@RestController

@RequestMapping

public class LoginController {

@PostMapping("/hello")

public boolean insert(Integer i) {

n("开始...");

//如果姓名为空就⼿动抛出⼀个⾃定义的异常!

if(i==null){

处理404

这⾥使⽤最有效的办法。

实现ErrorController

@RestController

public class ErrController implements ErrorController {

@Override

public String getErrorPath() {

// TODO Auto-generated method stub