java - Spring 3 Controller 异常处理器实现问题

标签 java spring-mvc exception-handling

我希望实现一个“ExceptionController”来处理在执行其他 Controller 方法时抛出的异常。根据 API documentation,我没有在我的应用程序上下文中指定任何 HandlerExceptionResolver应该启动 AnnotationMethodHandlerExceptionResolver。我在源代码中验证了它。那么为什么以下方法不起作用?

@Controller
public class ExceptionController {

  @ExceptionHandler(NullPointerException.class)
  public ModelAndView handleNullPointerException(NullPointerException ex) {
    // Do some stuff
    log.error(logging stuff)
    return myModelAndView;
  }
}

@Controller
public class AnotherController {

  @RequestMapping(value="/nullpointerpath")
  public String throwNullPointer() {
    throw new NullPointerException();
  }
}

我在调试日志中看到要求三个默认异常处理程序来处理异常,但什么也没做,我看到“DispatcherServlet - 无法完成请求”。随后向用户显示堆栈跟踪和 500 内部错误。

最佳答案

确保您的异常处理程序返回一个存在/映射到处理程序的 View 。

关于java - Spring 3 Controller 异常处理器实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2633451/

相关文章:

java - 404 运行简单 Spring MVC HelloWeb 时请求的资源不可用

spring-mvc - Spring Boot 集成测试 : @AutoConfigureMockMvc and context caching

java - 抛出和捕获异常

java - 格式错误的 JSON : Unexpected '<' in Spring

java - Facebook:在 friend 的墙上张贴照片

java - 使用 XOM xml 库时,DTD 工厂类 org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl 不会从 DTDDVFactory 扩展

java - 在 Java 中,如何测试 `Double` 列表是否包含特定值

java - 绑定(bind)spring mvc命令对象时如何将多个参数名映射到POJO

java - RxJava 2 中的映射异常

python - 在类的每个方法中捕获相同的异常