一、SpringBoot 自定义异常处理的概念

SpringBoot 自定义异常处理是指在 SpringBoot 应用中,可以根据不同的业务场景,自定义异常类型,并且可以针对不同的异常类型,实现不同的异常处理逻辑。SpringBoot 自定义异常处理,可以帮助我们更高效的处理业务异常,以及更友好的向用户返回异常信息。

二、SpringBoot 自定义异常的实现方式

1、首先,我们需要定义一个异常类,继承自 Exception 或者其他异常类,并实现自定义的构造函数,以及自定义的 getMessage() 函数,以便在抛出异常时,能够友好的向用户返回异常信息。

public class BusinessException extends RuntimeException {
private String code;
private String msg;

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

public String getCode() {
return code;
}

@Override
public String getMessage() {
return msg;
}
}
Java

2、然后,我们需要实现一个异常处理器,实现 ErrorController 接口,重写 getErrorPath() 函数,实现自定义的异常处理逻辑。

@Controller
public class CustomErrorController implements ErrorController {
@Override
public String getErrorPath() {
return "/error";
}

@RequestMapping("/error")
public String handleError(HttpServletRequest request, HttpServletResponse response, Model model) {
// 获取 statusCode:
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
if (statusCode == 401) {
model.addAttribute("code", 401);
model.addAttribute("msg", "Unauthorized");
} else if (statusCode == 404) {
model.addAttribute("code", 404);
model.addAttribute("msg", "Not Found");
} else {
model.addAttribute("code", 500);
model.addAttribute("msg", "Internal Server Error");
}
return "error";
}
}
Java

三、SpringBoot 自定义异常的优势

1、可以根据不同的业务场景,自定义不同的异常类型,实现不同的异常处理逻辑,更加灵活。

2、可以友好的向用户返回异常信息,提高用户体验。

3、可以更高效的处理业务异常,提高系统的可靠性。