SpringMvc 之异常,前端结合,过滤器
SpringMvc中出现异常的位置主要有以下地方:

所以在很多地方都会出现异常,所以对于异常,一个集中出来处理,因此要创建异常处理器类,来集中处理异常,其内部是Aop思想,

然后这个类上面需要使用@RestControlAdvice注解,

在处理异常的方法上面需要加上@Exceptionhandle注解

总的来说就是这样:

但这是一种情况,因为异常有很多种,所以也要分情况处理异常。

一般来说分为业务异常,系统异常和其他异常:

所以,对于这些异常要怎么处理呢?先在itheima包下创建一个execption也就是异常包,然后再在这个包下创建异常类:BusinessExecption(处理业务异常的类),SystemExecption(处理系统异常的类),这两个类都要继承RuntimExecption,在这个类里面需要声明一个变量code就是异常编码,而且有一个Code类中定义了编码常量。然后根据需要重写RuntimeExecption中的构造方法,这些构造方法在后面,创建异常时会用到。

Code常量中的编码:

然后需要在异常处理器类中定义两种异常格子对应的处理异常方法:

之后再去正常编码中模拟两种异常的出现,看看会怎处理:

两种异常处理结果对比:

这个前端结合因为,一开始访问地址没写对,localhost后面没加pages,所以后面莫名其妙的报错,搞了两天导致后面就没听,所以跳过。
//
然后是拦截器,拦截器和过滤器很相似都是当有访问请求访问资源时,进行拦截(拦截时会进行一些增强操作,或者其他操作)

然后就是配置拦截器类配置类,这个类在我们之前设置静态资源准许访问的时候已经创建了,而且其中的方法都差不多,一个是addResources。。,一个是addIntercpet,

还有一种在SpringMvcconfig类中写这个拦截器的配置类:简化SpringMvcSupport的编写,但是有侵略性

然后是拦截器的执行流程:

拦截器的参数,了解一下前置方法就行:

如果需要多个拦截器,那么就要创建对应多个拦截类:

然后再在拦截器配置类或者那个springmvccofig中配置拦截的路径啥的

那多个拦截器,执行顺序是怎么样的,好像是在拦截器配置类中先加载的先执行(这是对pre方法),post和after方法相反,

浙公网安备 33010602011771号