
[英]Spring 3 HandlerInterceptor passing information to Controller
[英]How to separate Controller and HandlerInterceptor exception?
package com.my.interceptor;
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle( ... ) throws Exception {
throw new Exception("test exception"); // throw test exception
}
}
package com.my.controller;
@RestController
@RequiredArgsConstructor
public MyController {
@GetMapping( "/my" )
public ResponseEntity getMy() {
...
}
}
package com.my.handler;
@RestControllerAdvice( basePackages = { "com.my.interceptor" } ) // Doesn't handle interceptor
// @RestControllerAdvice( basePackages = { "com.my.controller" } ) // Handle both interceptor and controller
public class MyExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler( value = { Exception.class } )
public void handleException( HttpServletRequest request, Exception e) {
...
}
}
我想在不创建自定义异常的情况下处理来自拦截器的异常。
但是 MyExceptionHandler 中的basePackages = { "com.my.interceptor" }
不处理来自拦截器的异常。
当我将 basePackages 更改为basePackages = { "com.my.controller" }
时,它同时处理拦截器和 controller。
为什么会发生这种情况,我该如何处理拦截器的异常?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.