Как я понимаю, я хочу следовать наилучшей практике для освобождения ресурсов в конце, чтобы предотвратить утечку соединения. Вот мой код в HelperClass.блок try-catch-finally в java
public static DynamoDB getDynamoDBConnection()
{
try
{
dynamoDB = new DynamoDB(new AmazonDynamoDBClient(new ProfileCredentialsProvider()));
}
catch(AmazonServiceException ase)
{
//ase.printStackTrace();
slf4jLogger.error(ase.getMessage());
slf4jLogger.error(ase.getStackTrace());
slf4jLogger.error(ase);
}
catch (Exception e)
{
slf4jLogger.error(e);
slf4jLogger.error(e.getStackTrace());
slf4jLogger.error(e.getMessage());
}
finally
{
dynamoDB.shutdown();
}
return dynamoDB;
}
Мои сомнения, так как наконец блок будет выполняться независимо от того, что, будет ли dynamoDB возвращает пустое соединение, так как оно будет закрыто в наконец блока, а затем выполнить обратный заявление? ТИА.
Что происходит, когда вы пытаетесь? –
Лучше сделать нулевую проверку на dynamoDB перед вызовом dynamoDB.shutdown(); – paramupk
dynamoDB выключается независимо от того, происходит ли исключение или нет. Вы только завершаете работу после его использования. Если вы хотите только подключение, почему вам даже нужно отключить его, поскольку у вас не будет соединения, если что-то пойдет не так и выбрасывает нуль исключение указателя, и если вы получаете соединение, почему вы хотите завершить работу? – geddamsatish