自定义全局异常处理器

自定义全局异常处理器,这样就可以无需再controller中处理异常 直接统一处理

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 全局异常处理器
 * @ControllerAdvice:该注解可以在Controller出现异常的时候执行该程序
 * 并且拥有Controller相同功能返回参数
 */
@ControllerAdvice
public class GlobalExceptionHandler {
     

    /**
     *  处理异常的方法 在各个控制器出现异常的时候执行 并且返回设置定好的参数
     * @return
     * CustomizeException 自定义的异常类
     * @ExceptionHandler(CustomizeException.class) 可以自己选择需要捕获的异常
     */
    @ExceptionHandler(CustomizeException.class)
    @ResponseBody
    public AjaxResult customizeExceptionHandler(CustomizeException customizeException){
     

        //返回用户能看的懂的异常
        return AjaxResult.me().setSuccess(false).setMessage(customizeException.getMessage());
    }

    /**
     *  处理异常的方法 在各个控制器出现异常的时候执行 并且返回设置定好的参数
     * @return
     * @ExceptionHandler(Exception.class) 捕获系统异常 并且进行处理返回用户能看懂的
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public AjaxResult exceptionHandler(Exception exception){
     

        return AjaxResult.me().setSuccess(false).setMessage("未知异常");
    }
}

CustomizeException 这是自己自定义的异常

/**
 * 自定义异常
 * 里面的参数需要自己在server层中业务判断的时候存进去
 */
public class CustomizeException extends RuntimeException{
     
    public CustomizeException(String msgError){
     
        super(msgError);
    }
}

你可能感兴趣的:(自定义全局异常处理器)