java - Spring错误处理不起作用

标签 java spring error-handling

有很多主题,但是...我读到,我有适当的返回参数和参数,这是必要的。怎么了?

<servlet>
    <servlet-name>springMvc</servlet-name>
    <servlet-class>com.vse.uslugi.utilities.web.BaseDispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.DispatcherServlet;

public class BaseDispatcherServlet extends DispatcherServlet {
@ResponseBody
@ExceptionHandler(Exception.class)
public String handleThrowable() {
    return ErrorService.html("Internal server error");
}

@ResponseBody
@ExceptionHandler(ResourceNotFoundException.class)
public String handleResourceNotFoundException() {
    return ErrorService.html("Page not found");
}
}
//--------------------
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
}

最佳答案

您的应用程序服务器正在实例化调度程序servlet,因此它可能不是 Spring 管理的。

您有一些选择:

  • @ExceptionHandler方法添加到 Controller 。
  • 将一个具有@ExceptionHandler方法的bean添加到您的spring上下文中,并使用@ControllerAdvice注释该类,默认情况下会将其应用于所有 Controller 。
  • 关于java - Spring错误处理不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952845/

    相关文章:

    java - 使二维数组不等式检查更快

    java - main 方法的奇怪行为

    java - 在 JAR 中的资源中

    java - GAE : 30-40 Second Queries to Cloud SQL

    java - Advice是不是从struts 2 action中调用的?

    php - WordPress: "Warning: Illegal string offset"在多个地方

    java - 如何抛出错误并同时返回空列表?

    java - java 中的 Torrent 解析器

    java - 我无法使用 JSR303 @Valid 显示错误消息

    rust - 如何使用 `catch_unwind` 获取 panic 信息(即堆栈跟踪)?