springboot参数检验,Assert使用

assert:断言是java的一个保留字,用来对程序进行调试,后接逻辑运算表达式,如下:

int a = 0, b = 1;
assert a == 0 && b == 0;
使用方法:javac编译源文件,再java -ea class文件名即可。

在springboot中可以使用spring提供的Assert类的方法对前端来的参数进行校验,如:

@GetMapping(value = "/search")
public String testAssert(Integer userId){
    Assert.notNull(userId, "用户信息不能为空");
    return "ok";
}

这里对userId进行了非空的检验,为空就抛非法参数异常,要是需要对某个对象的某属性进行检验可以参考:https://blog.csdn.net/qq_41633199/article/details/105159128。

springboot参数检验,Assert使用_第1张图片

异常抛出后,默认情况先会将异常信息传给browser,这样不太友好,我们可以在定义一个全局异常处理器对异常进行捕获,给browser友好的提示,代码如下:

@ControllerAdvice
public class GlobalExcHandler {
    /**
     * @description:处理由断言,IllegalArgumentException抛出得异常信息
     * @return java.lang.String
     */
    @ResponseBody
    @ExceptionHandler(value = IllegalArgumentException.class)
    public String handleArgError(IllegalArgumentException e){
        return e.getMessage();
    }
}

测试:

springboot参数检验,Assert使用_第2张图片

 

console端出警告:

 

你可能感兴趣的:(java)