JDBCtemplate 不允许捕获 SQLException
JDBCtemplate doesn't allow catch SQLException
我正在使用 Spring JDBC 我有这个连接到 PostgreSQL 数据库的测试方法(这是一个示例代码,这不是原始代码):
public void toConnect() {
final String sql = "SELECT 1";
template.execute(sql);
}
如果我捕捉到 DataAccessException,并且我调用方法 getCause(),程序无论如何都会触发 PLSQException(尽管最终会打印我在捕捉中设置的消息)。
public void toConnect() throws CGConnException {
final String sql = "SELECT 1";
try {
template.execute(sql);
} catch (DataAccessException e) {
throw new CGConnException("CG : Error DataBase connection. - ", e.getCause());
}
}
问题是我无法处理异常,我只想打印捕获的消息,而不打印异常详细信息。
如果 运行 配置参数错误或 PostgreSQL 数据库已关闭,则会生成 PSQLException,这很好,但我需要控制此异常.但是 JdbcTemplate.execute(sql) 方法抛出一个 DataAccessException,因此,不可能在 try/catch 块上捕获 PSQLException(或者我不知道怎么做)。因此,当 运行 程序总是在控制台中出现堆栈跟踪:
2021-05-02 03:10:14.052 ERROR 73837 --- [ main] .PostgresClientTestConnectionApplication : Error : CG : Error DataBase connection.
在这种情况下,我只需要将日志打印为 "Connection Error" 或与上述示例类似的内容。
提前致谢。
其实没有错。异常得到处理,程序最终正确地捕获了它。
try {
template.execute(sql);
logger.error("Connection Successful . . .");
} catch (Exception e) {
logger.error("Error connection" + e.getMessage());
throw new CGConnException("CG : Error DataBase connection. - ", e);
}
在 运行 控制台中,它打印关联堆栈跟踪,因为 Spring 内部 类 这样做,但这并不意味着我们做错了什么或没有句柄异常。
我正在使用 Spring JDBC 我有这个连接到 PostgreSQL 数据库的测试方法(这是一个示例代码,这不是原始代码):
public void toConnect() {
final String sql = "SELECT 1";
template.execute(sql);
}
如果我捕捉到 DataAccessException,并且我调用方法 getCause(),程序无论如何都会触发 PLSQException(尽管最终会打印我在捕捉中设置的消息)。
public void toConnect() throws CGConnException {
final String sql = "SELECT 1";
try {
template.execute(sql);
} catch (DataAccessException e) {
throw new CGConnException("CG : Error DataBase connection. - ", e.getCause());
}
}
问题是我无法处理异常,我只想打印捕获的消息,而不打印异常详细信息。
如果 运行 配置参数错误或 PostgreSQL 数据库已关闭,则会生成 PSQLException,这很好,但我需要控制此异常.但是 JdbcTemplate.execute(sql) 方法抛出一个 DataAccessException,因此,不可能在 try/catch 块上捕获 PSQLException(或者我不知道怎么做)。因此,当 运行 程序总是在控制台中出现堆栈跟踪:
2021-05-02 03:10:14.052 ERROR 73837 --- [ main] .PostgresClientTestConnectionApplication : Error : CG : Error DataBase connection.
在这种情况下,我只需要将日志打印为 "Connection Error" 或与上述示例类似的内容。
提前致谢。
其实没有错。异常得到处理,程序最终正确地捕获了它。
try {
template.execute(sql);
logger.error("Connection Successful . . .");
} catch (Exception e) {
logger.error("Error connection" + e.getMessage());
throw new CGConnException("CG : Error DataBase connection. - ", e);
}
在 运行 控制台中,它打印关联堆栈跟踪,因为 Spring 内部 类 这样做,但这并不意味着我们做错了什么或没有句柄异常。