SSMP小案例之异常处理
之前的状态都是理想的情况下才有的效果,如果发生了异常该如何处理呢。
首先我们自己制造个异常看看是什么效果。
为什么要加if(true)呢,因为抛出异常后,后面的语句是不被执行的,所以用这个让它成立。
可以看到现在发送请求,它是有问题的。
我们在utils包下新建一个类,所有的异常处理都会被这个类所拦截。
这里需要用到两个注解,一个是@ControllerAdvice或者@RestControllerAdvice,和@ExceptionHandler这两个注解。@ControllerAdvice表示它是一个springmvc的拦截器,@ExceptionHandler代表所有的异常信息都会被它拦截。
如果发生异常的话,我们可以把flag设为false,并且给出错误信息。
我们在工具类Result下重新新建一个成员msg,并给它创建一个构造方法。如果出现异常就把它,作为返回值返回。
你也可以直接返回一个msg,并为它创建一个构造方法,在构造方法里面直接把flag设置false。
并把前端页面的错误信息,设置为后端传过来的信息。
但是呢还有个问题,你要么所有的异常信息交给前端,要么都是后端做,所以要统一规范。
对service的flag进行判断,如果flag为true则添加成功,否则则添加失败。
然后把后端出过来的消息,提示出来。