Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JPA NoResultException 
:(
    Опции темы
mecid
Дата 10.3.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 30.7.2009
Где: Baku

Репутация: нет
Всего: нет



Вот такой вопрос с точки зрения правильности писания кода. 
Как лучше писать 
Код

Query q = em.createQuery("...");
//....
try{
Entity e = q.getSingleResult();
}catch(NoResultException e){
//тут код,если не найдено
}
//если найдено

или
Код

Query q = em.createQuery("...");
//....

try{
Entity e = q.getSingleResult();
}catch(NoResultException e){}
if(e != null){
//если найдено
}else{
//если не найдено
}

PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
intr
Дата 10.3.2010, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: 2
Всего: 2



Мне первый вариант больше нравится smile Ибо не хорошо обрабатывать исключение пустым блоком. А второй вариант близок по семантике к "C" стилю, когда исключений нет. Хотя все зависит от контекста  smile
--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
mecid
Дата 10.3.2010, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 30.7.2009
Где: Baku

Репутация: нет
Всего: нет



но заключать логику в обработчик исключения тоже както не так?
есть еще такой вариант как всегда тащить getResultList() и потом проверять его на isEmpty();
чтобы без исключений

Это сообщение отредактировал(а) mecid - 10.3.2010, 08:27
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
mecid
Дата 10.3.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 30.7.2009
Где: Baku

Репутация: нет
Всего: нет



так думаю лучше?
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Andrey1
Дата 12.3.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



1) У меня такое впечатление, что второй код не скомпилиться.
2) Зачем нужен второй вариант и чем он может быть лучше на вкидку не понятно.


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
mecid
Дата 12.3.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 30.7.2009
Где: Baku

Репутация: нет
Всего: нет



чтобы не заключать логику в обработке исключений
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
intr
Дата 12.3.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: 2
Всего: 2



Цитата(mecid @ 12.3.2010,  19:35)
чтобы не заключать логику в обработке исключений

Я не вижу в этом ничего плохого. В крайнем случае надо выделит этот код  в отдельный метод smile
--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
5ad1sT
Дата 12.3.2010, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 10.2.2009

Репутация: нет
Всего: нет



А склоняюсь к использованию списка и isEmpty(). smile а там уже кому как smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.