![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Cyclone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
Доброго времени.
При возникновении исключительных ситуаций, например нарушение ограничений в БД при работе с Hibernate (org.hibernate.exception.ConstraintViolationException) среда NetBeans выводит очень полезную информацию об ошибке перед stacktrace'ом:
Очень хочется программно получить этот текст (ERROR: update or delete... Подробности: ...), однако сколько я не перебирал методов объекта Exception - получить его не удалось. Кто подскажет?.. Спасибо. Если важно - среда NetBeans IDE 6.7.1. |
|||
|
||||
| Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
пиши логи в log4j. IDE не всегда в себя все ошибки записывает, а если и записывает, то бывает что не полностью.
Добавлено через 2 минуты и 33 секунды
а по поводу самой ошибки
Должен все вывести. Но и доки читать не забывай |
||||
|
|||||
| Cyclone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
Вы, кажется, не поняли... я хочу получить этот текст в Stirng объекте при обработке исключения.
e.printStackTrace() печатает: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) ... e.getMessage() и e.getLocalizedMessage() возвращают: Could not execute JDBC batch update e.toString() тоже не то, что надо... А как получить вот этот текст "... Подробности: Key (id)=(53) is still referenced from table "work_item"..."?
? |
|||
|
||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
-------------------- |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
Cyclone, что-то я не понимаю, что вам нужно чем printStackrace не подходит
|
|||
|
||||
| Cyclone |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
Что же непонятного я говорю?..
Так, попробую объяснить ещё раз. При работе сервлета на сервере GlassFish выбрасывается исключение (org.hibernate.exception.ConstraintViolationException), и в консоли среды NetBeans печатается следующий текст:
Мне очень хочется получить в объекте String часть текста, выделенную жирным. Вот так я перехватываю исключение, пытаясь получить этот текст:
Приведённые методы печатают следующее:
Как видите, часть текста, выделенную сверху жирным, ни одним из приведённых методов, получить не удалось. Как мне получить выделенный текст в виде объекта String при обработке исключения? Выяснять причину ошибки в этой теме не надо. Разбирать код сервлета не надо. Объяснять, как пользоваться try-catch, не надо. Надо только получить выделенный жирным текст в String. |
||||||
|
|||||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
А я писал чтоб меня игнорировали?
-------------------- |
|||
|
||||
| Cyclone |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
Код
выводит в консоль:
Снова не то, что надо. |
||||||||
|
|||||||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
А, так то, что ты хочешь - это походу вывод Log4j.
-------------------- |
|||
|
||||
| Cyclone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
И каков же будет ответ на мой вопрос (как получить в String)? |
|||
|
||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
Ну у логгера есть настройки, ему можно указывать в каком формате и куда выводить данные. Нужно смотреть документацию. Сомневаюсь, что получится получить эти данные в строку...
Это сообщение отредактировал(а) Старовъръ - 3.11.2009, 10:29 -------------------- |
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 11 Всего: 77 |
Это лог хибернейта.
Походу, можно подрихтовать логфоржи пропертис и выставить org.hibernate лог дабы он хоть ерроры писал. Но это в консоль или иной аутпут пойдёт, то ись туда, куда настроен вывод логфоржи. Можно подумать насчёт того чтоб писать в какой-нить поток аппендером(настроить этот вывод), а оттуда уже читать ручками. Ну например в файл из из файла Но это будет некрасиво, не всегда возможно и оно будет читать ВСЕ логи. А оно, вижу не надо. Хибер разработчики посчитали что эту инфу нужно только логгировать, а не писать в ксепшн Если чётко отвечать на чёткий вопрос - то НИКАК. Ну, разумными пряморукими методами, по крайней мере -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
я еще в первом посте (который мне заминусовали ) написал про необходимость использования в данной ситуации log4j
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |