相关疑难解决方法(0)

弹簧过滤器的异常处理

我使用@ExceptionHandler在spring中处理异常.使用@ExceptionHandler注释的方法捕获控制器抛出的任何异常,并相应地采取操作.为了避免为我使用@ControllerAdvice注释的每个控制器编写@exceptionHandler.

一切都按预期工作正常.

现在我有一个过滤器(是的,不是拦截器,以处理某些要求),它是使用DelegatingFilterProxy和ContextLoaderListener实现的.

当我从上面的过滤器中抛出相同的异常时,它没有像在控制器情况下那样完成.它直接抛给用户.

这里有什么问题?

spring exception-handling spring-mvc

11
推荐指数
2
解决办法
1万
查看次数

Spring Cloud Zuul - 自定义错误过滤器

我想添加一个自定义错误Zuul过滤器,并希望确保SendErrorFilter不执行.我看了几个github链接,包括Spring-cloud/spring-cloud-netflix和各种堆栈溢出问题: -

自定义Zuul异常

覆盖Zuul Filter SendErrorFilter

我的代码如下 -

  public class CustomErrorFilter extends ZuulFilter {

private static final Logger LOG = LoggerFactory.getLogger(CustomErrorFilter.class);

@Override
public String filterType() {
    return "post";
}

@Override
public int filterOrder() {
    return -1; 
}

@Override
public boolean shouldFilter() {
    RequestContext ctx=RequestContext.getCurrentContext();
    if(ctx.getThrowable()!=null)
        return true;
    else
       return false;
}

@Override
public Object run() {

        RequestContext ctx = RequestContext.getCurrentContext();

            ctx.setThrowable(null); // response is not returned unless 
                                      throwable is set to null.
            ctx.remove("error.status_code");

            ctx.setResponseBody(“Error”);
            ctx.getResponse().setContentType("text/plain");
            ctx.setResponseStatusCode(400); …
Run Code Online (Sandbox Code Playgroud)

spring spring-cloud netflix-zuul spring-cloud-netflix

0
推荐指数
1
解决办法
3212
查看次数