| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > как обработать сообщение от oracle? |
| Автор: Swatch 13.1.2009, 09:18 | ||
| добрый день. в оракле написана процедурка, которая копирует строки в БД при определенных условиях, учитывая параметры, передаваемые в процедуру. Появилась неободимость написать сервлет, чтобы обычные пользователи через хтмл-страницу могли вводить параметры и выполнялась бы эта же процедурка, в которую бы передавалось то, что вводится пользователем. НО... в оракле в процедуре есть проверка на существование в БД строк с передаваемыми значениями. при наличии таких строк выдается ошибка. Вопрос в следующем, как в Java обработать эту ошибку и выдать ее пользователю? Вот как выглядит ошибка в оракле:
|
| Автор: necromancer 13.1.2009, 10:06 |
| если я не ошибаюсь, то при возникновении такой ошибки ты словишь SQLException |
| Автор: Swatch 13.1.2009, 10:14 |
| да, я вот тоже так подумала... но у меня проверяются 2 параметра и ошибки разные... вопрос в том, как их разделить? то есть, как узнать, какая именно ошибка? |
| Автор: necromancer 13.1.2009, 12:36 |
| смотрим сюда: RAISE_APPLICATION_ERROR(-20006,'Kod='||kod_||' uzhe sushestvuet.'); (SQLException e) { e.getMessage(); // вернет тебе 'Kod='||kod_||' uzhe sushestvuet.' } дальше уже ты можешь строку парсить на код ошибки. Ну а более парвильный путь, это иметь 2 ошибки: RAISE_APPLICATION_ERROR(-20006,'A uzhe sushestvuet.'); RAISE_APPLICATION_ERROR(-20007,'B uzhe sushestvuet.'); |
| Автор: Swatch 13.1.2009, 16:18 |
| Угу, я уже сообразила |
| Автор: DimW 19.1.2009, 15:16 | ||
еще более правильный путь разделить две ошибки на стороне БД в процедуре, поскольку вы ее всеравно используете:
как видите уже не требуется разбор ошибки на уровне апп сервера. |