Перейти к содержанию
Авторизация  
glass

Обьясните try-catch-finally

Рекомендуемые сообщения

try(Connection con = L2DatabaseFactory.getInstance().getConnection())
		{
			PreparedStatement statement = con.prepareStatement("UPDATE characters SET online=?, lastAccess=? WHERE obj_id=?");
			statement.setInt(1, isOnline());
			statement.setLong(2, System.currentTimeMillis());
			statement.setInt(3, getObjectId());
			statement.execute();
			statement.close();
			
		}
		catch (final Exception e)
		{
			if (Config.ENABLE_ALL_EXCEPTIONS)
				e.printStackTrace();
			
			_log.warn("could not set char online status:" + e);
		}

пример 2

                Connection con = null;
		PreparedStatement statement = null;
		try
		{
			con = L2DatabaseFactory.getInstance().getConnection();
			statement = con.prepareStatement("UPDATE characters SET LastHWID=? WHERE obj_id=?");
			statement.setString(1, HWID);
			statement.setInt(2, getObjectId());
			statement.execute();
		}
		catch(final Exception e)
		{
			_log.warning("could not store characters HWID:" + e);
		}
		finally
		{
			DatabaseUtils.closeDatabaseCS(con, statement);
		}

Вопрос такой, в первом try - catch только но в трае присваивание. А во втором try - catch - finally.  Так вот... В первом случае конект закроется автоматически когда попытка будет успешной? или надо всё равно finally писать? Со вторым понятно, finally выполнится когда попытка будет успешна.

Изменено пользователем glass

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Загуглите try-with-resources. В первом примере не нужно закрывать коннект, как и не нужен блок finally.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е в обоих примерах конект закрывается как нужно. Понял.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е в обоих примерах конект закрывается как нужно. Понял.

Спасибо.

Именно. Но первый метод применим для Java 7 и выше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...