【发布时间】:2023-04-04 17:56:01
【问题描述】:
我有一个简单的数据库连接方法,我想添加一个条件,即如果连接失败,则会向人员列表发送一封电子邮件,告知连接失败。
我目前的方法是这样的:
public Connection createInitialConnection() throws ClassNotFoundException, SQLException, PollingException
{
DBConnectionDetails conDetails = new DBConnectionDetails("INITIAL");
Class.forName(conDetails.getDriver());
Connection connInitial = DriverManager.getConnection(conDetails.getUrl(),
conDetails.getUser(), conDetails.getPassword());
logger.info("Initial connection created" + conDetails.getUrl());
return connInitial;
}
目前,没有检查连接是否成功,如果没有连接则程序继续运行。
我不确定最好的方法是什么。 if/else 还是 try/catch?
【问题讨论】:
-
IllegalStateException 或 null 以及您使用 createInitialConnection 的位置检查是否 != null
-
我认为你应该捕获 SQLException ,然后尝试发送邮件。
-
您在那里使用什么数据库技术?您应该尝试确定连接失败时引发的异常类型。然后是的,使用 try/catch 语句。
-
这是题外话,但我想问一下。你确定这个系统会为每次失败的尝试发送电子邮件吗?如果这是一个网页等,那么如果连接失败(由于数据库关闭等),那么您的系统可能开始每分钟发送如此多的电子邮件,而不是它基本上会变成一个很好的垃圾邮件发送者机器;)
-
@T.G.能够限制电子邮件会很好。也使用连接池可以减少连接重试次数。
标签: java