代码里各种异常司空见惯,在Spring Boot项目里Spring MVC为我们提供了这样的方式即可轻松处理各种异常。
@RestControllerAdvice类上注解,这个注解主要是对Controller的增强,@ExceptionHandler(value = Exception.class)方法上面注解,这两个注解组合就可以处理控制器抛出的各种异常,我们便可以根据异常类型分类统一处理。代码如下:
package com.example.demo.exception;
import com.example.demo.result.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
/**
* 自定义异常处理器
*/
@RestControllerAdvice
public class DemoExceptionHandler {
@ExceptionHandler(Exception.class)
public Result exceptionHandler(HttpServletRequest req, Exception e) {
if (e instanceof DemoException) {
return Result.error(-1, "通用异常", e.getMessage());
} else if(e instanceof NullPointerException) {
return Result.error(-2, "空指针异常", e.getMessage());