Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Java. throws (...) - что это значит?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Вт Окт 31 2006 18:29    Заголовок сообщения: Java. throws (...) - что это значит? Ответить с цитатой

в листингах книги встречаются записи
Код:
public void countBooks() throws Exception

Exception может изменяться на что-то иное.

что же означает throws ? (книгу читаю не с начала и не по порядку, но что такое throws - не смог найти).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Штирка



Зарегистрирован: 01.12.2003
Сообщения: 8

СообщениеДобавлено: Вт Окт 31 2006 21:07    Заголовок сообщения: Re Ответить с цитатой

throws в данном случае означает "может генерировать" (то бишь в процессе выполнения функция может генерировать нестандартную ситуацию)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Вт Окт 31 2006 22:12    Заголовок сообщения: Ответить с цитатой

а практический смысл в этой записи тогда какой?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Штирка



Зарегистрирован: 01.12.2003
Сообщения: 8

СообщениеДобавлено: Вт Окт 31 2006 22:56    Заголовок сообщения: А смысл простой.... Ответить с цитатой

... - таким манером ты оговариваешь тип нестандартных ситуаций которые могут возникнуть при исполнении кода в функции countBooks() а так же способы обработки этих ситуаций. (Наглядный пример - деление одного числа на другое, когда нестандартной ситуацией является деление на 0 (и которую можно, например, обработать с помощью вывода сообщения об ошибке и делении на 0)).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Ср Ноя 01 2006 14:11    Заголовок сообщения: Ответить с цитатой

Ну... Предположим, ошибки времени выполнения (RuntimeException) не принято обрабатывать.

Но есть другие ошибки, например при работе с БД. Если происходит ошибка при выполнении транзакции можно ее откатить в блоке catch

Например:
Код:

Connection connection = dataSource.getConnection();
conenction.setAutoCommit(false);
try{
    ...
    connection.commit();
}catch(SQLException e){
    connection.rollback();
}finally{
connection.close();
}


Если при выполнении транзакции произойдет ошибка, то транзакция откатится. А вообще, без понимания системы обработки исключений программировать на Java даже пробовать не стоит. Т.к. в Java обработка исключений (кроме RuntimeException) является обязательной. Поэтому список возбуждаемых исключений входит в описание метода.
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Пт Ноя 03 2006 10:57    Заголовок сообщения: Ответить с цитатой

Kefir, спасибо.
Kefir писал(а):
без понимания системы обработки исключений программировать на Java даже пробовать не стоит.

программировать ещё не собрался, пока изучаю. думаю, что разберусь в теме.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Пт Ноя 03 2006 12:15    Заголовок сообщения: Ответить с цитатой

если мы после описания функции:
Код:
public void countBooks()

указываем
Код:
 throws Exception

то потом мы при её вызове можем использовать структуру:
Код:
try{
    this.countBooks();
}catch(Exception e){
    System.out.println( "ошибка в функции countBooks:\n " + e.toString() );
}

правильно ли я понимаю?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Штирка



Зарегистрирован: 01.12.2003
Сообщения: 8

СообщениеДобавлено: Сб Ноя 04 2006 16:47    Заголовок сообщения: Да, правильно Ответить с цитатой

(-)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Вт Ноя 07 2006 07:24    Заголовок сообщения: Ответить с цитатой

dipsy писал(а):

правильно ли я понимаю?

Не можем, а должны. Или при описании метода использующего данный м5етод нужно указать все тот же throw...
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...