在 Spring Mvc Java 中记录未处理的异常

问题描述 投票:0回答:1

我想捕获整个应用程序中的异常并将它们保存到我的数据库中。我很难选择使用哪种方法。我知道我希望在全球范围内处理异常。我指的是这个来源:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc并且我有我的@controlleradvice,但异常根本没有通过它。谁能给我提供一个具体的例子来说明如何做到这一点?

谢谢你。

java spring spring-mvc exception
1个回答
0
投票

您可以同时使用

ControllerAdvice
ExceptionHandler
注释来捕获特定异常并对其执行任何您想要的操作。正如@M。 Deinum 说,对于异常日志记录,您可以通过使用 logback 或 log4j
Database Appender
s 获得相同的结果,但在
Service Layer
中捕获异常并将其转换为更合适的
Status Code
s 仍然是一个好主意,如下所示:

@ControllerAdvice(annotations = RestController.class)
public class GenericServiceExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity handleUncaughtException(Exception ex) {
        return badRequest(ex.getMessage()).build();
    }
}

此异常处理程序,捕获由

Exception
注释的 bean 抛出的所有
RestController
异常,并将它们转换为
400 Bad Request
响应。

© www.soinside.com 2019 - 2024. All rights reserved.