【发布时间】:2019-03-22 00:49:34
【问题描述】:
我正在尝试使用重试逻辑来获取 JDBC 连接,以防我遇到类似以下内容的 SQL 异常:
int counter = 0;
Connection conn = null;
while (null == conn) {
try {
conn = GetConnectionObject;
} catch (SQLException e) {
if (++counter > MAX_RETRY) {
//Log ERROR
break;
}
} finally {
if (null != conn) {
try {
DbUtils.close(conn);
} catch (SQLException e) {
logger.error("Exception while closing the connection object");
}
}
}
}
我目前无法对此进行测试,因此需要一些帮助。
如果我得到异常,这将正常工作,然后我可以在重试后登录。但是如果我们没有得到异常,它将来到 finally 块并关闭连接。 Try-Catch-Finally 在 while 循环中。
所以如果我关闭我的连接,如果到达则流
while(null== conn)
我的连接对象关闭后会变成空吗?
或者如果有其他方法可以实现重试部分?
【问题讨论】:
-
只有将
conn显式设置为null才能使其变为null。关闭连接不会使变量为空,它只是关闭连接。 -
请注意,我们更喜欢这里的技术写作风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,聊天材料和缩写 txtspk,恳求,你多久了被卡住、投票建议、元评论等。只需解释您的问题,并展示您尝试过的内容、预期的内容以及实际发生的情况。