首页 > 代码库 > springmvc 全局的异常拦截处理 @ControllerAdvice注解 @ExceptionHandler

springmvc 全局的异常拦截处理 @ControllerAdvice注解 @ExceptionHandler

第一步: Dispatcher前端控制器的源码中 默认的 

private boolean throwExceptionIfNoHandlerFound = false;说明如果没有找到匹配的执行器,不会抛出Handler未找到异常,所以404的异常要捕获到的话就要将此属性改为true

可以采用 web.xml的配置Dispatcher的此参数为true  具体配置参数,请百度,这里不细说

第二步:新建一个类,在此类上添加@ControllerAdvice注解,意思是控制器增强的意思,该注解可以被spring扫描到,然后再此类中定义一个方法用来处理你拦截的异常,注意,

方法的上面要加上@ExceptionHandler注解,注解的value值就是你要拦截的异常的class字节码对象

 

第三步:在第二步之上基本所有的工作都已完成,你只需要保证你的注解能被spring mvc 配置文件的扫描包中 被扫描到,然后详细写好你对拦截到的一场的具体处理,就完事了

 

注意事项:

  不要再mvc的配置文件中配置<mvc:default-servlet-hanler/>如有配置会影响到你定义的全局的mvc一场拦截不起效果哦,基本上测试是成功的,如果你没有成功说明还有那些地方没做对,

  基本上按照上述的步骤来都可以的,具体的配置问题大家自行解决吧,主要思路是对的,实施过程中有遇到问题是难免的,我也不可能将所有的可能遇到的问题罗列出来给大家参考,基本上

  按照主步骤没做,细节上的小问题就要靠大家自己去学习钻研了,同时也锻炼下自己解决问题的能力,和对该知识点的认识加深印象,加油哦

springmvc 全局的异常拦截处理 @ControllerAdvice注解 @ExceptionHandler