spring统一拦截异常并统一处理

时间:2024-05-20 07:02:09

在开发中,经常使用到session,当session失效时我就要弹出一次登录超时的提示

经过查找一段时间后,发现了解决办法:

解决思路是:

主要抛出2种日志,

1是应对我们自己定义的异常,比如登录超时,我们在需要判断的地方 加一个throw我们自己定义的exption就行了,然后统一抛出报错信息给前台

2.应对所有的异常,因为都是在springmvc使用的,所以可以加一个统一处理,将这一类异常统一传给前台并提示 服务器内部错误

具体实现:

1.定义自己的异常类MyException

spring统一拦截异常并统一处理

2.使用@ControllerAdvice拦截所有controller的异常,并根据相应的异常类型作出处理

spring统一拦截异常并统一处理

3.在 controller中使用,可以使用

if(){

throw new MyException("会话超时,请重新登录");

}

这么操作

然后GlobalExceptionHandler拦截该异常,抛出传入的meg。当发生其他未知的异常时,就会走GlobalExceptionHandler的@ExceptionHandler(Exception.class )   反馈前端服务器内部错误。