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。
异常抛出后,默认情况先会将异常信息传给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(); } }
测试:
console端出警告: