在Spring引导中捕获JDBCConnectionException

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

在使用hikari处理数据库连接的spring boot中,我想捕获,JDBCConnectionException异常或任何其他hibernate级异常,以便我可以在发生这种情况时生成通知。我有一个@ControllerAdvice配置,但似乎它没有达到那个级别,但早先处理。

@Order(Ordered.HIGHEST_PRECEDENCE)
@ControllerAdvice
public class ExceptionTranslator {

    @ExceptionHandler(JDBCConnectionException.class)
    public void handleJdbcConnectionException(JDBCConnectionException ex, HttpServletResponse response) throws IOException {
        response.sendError(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage());
    }

我使用spring数据存储库来访问db。

WARN |PoolBase                      |2d33dd4e-46d6-11e9-9d35-2f44d962868c|conf-hikari-pool - Failed to validate connection ConnectionID:1 ClientConnectionId: 1f1135cd-94bf-4543-bfe8-687e10a40797 (The connection is closed.). Possibly consider using a shorter maxLifetime value.
WARN |PoolBase                      |2d33dd4e-46d6-11e9-9d35-2f44d962868c|conf-hikari-pool - Failed to validate connection ConnectionID:2 ClientConnectionId: 28890cd1-16ad-43f9-b240-a9ae3aa2d45f (The connection is closed.). Possibly consider using a shorter maxLifetime value.
WARN |SqlExceptionHelper            |2d33dd4e-46d6-11e9-9d35-2f44d962868c|SQL Error: 0, SQLState: null
ERROR|SqlExceptionHelper            |2d33dd4e-46d6-11e9-9d35-2f44d962868c|conf-hikari-pool - Connection is not available, request timed out after 6010ms.
ERROR|SqlExceptionHelper            |2d33dd4e-46d6-11e9-9d35-2f44d962868c|The connection is closed.
java spring-boot spring-data-jpa spring-data hikaricp
1个回答
1
投票

您提供的代码示例仅捕获REST调用流中引发的异常。在数据库提交期间REST调用返回后,抛出许多spring-data异常。不可能以这种方式抛出这些异常。处理这些错误的最佳方法是查看日志,将它们推送到类似Splunk的内容并在那里生成警报。

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