oracle 如何获得详细的Plsql错误检查

xmq68pz9  于 2023-04-20  发布在  Oracle
关注(0)|答案(1)|浏览(157)

我有一个API,它通过名字调用一个过程并执行它,它工作正常,但是当我测试一个有错误的存储过程时,它给我一个一般的错误消息,我如何让它给我一个详细的错误消息?
这就是代码:

@PostMapping("/procedures/{procedureName}")
    public ResponseEntity<String> executeProcedure(@PathVariable String procedureName) {
        String sql = "{CALL " + procedureName + "}"; 
        try (Connection conn = jdbcTemplate.getDataSource().getConnection();
             CallableStatement stmt = conn.prepareCall(sql)) {
            stmt.execute(); // execute the procedure
            return ResponseEntity.ok("Procedure executed successfully");
        } catch (SQLException e) {
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
        }
    }

获取详细的错误消息。

cnwbcb6i

cnwbcb6i1#

一般来说,如果你的代码捕获了一个异常,打印出一个完整的堆栈跟踪是一个好习惯。通常与记录器一起。它有一个方便的接口来打印异常的堆栈跟踪。

解决方案

添加Lombok插件和依赖项
将以下注解添加到类中

@Slf4j

将日志记录添加到catch块

} catch (SQLException e) {
    log.error("SQL exception: {}, e);
    return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}

相关问题