powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Не обрабатывает EXCEPTION
25 сообщений из 27, страница 1 из 2
Не обрабатывает EXCEPTION
    #38842755
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть Application Process:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
-- some code
htp.p('MYERR:0');
EXCEPTION
          WHEN OTHERS THEN
          	htp.p('MYERR:'||SQLERRM);
END;



Запускаю ее через Get_html и если возникает какая то ошибка, то в респонс тексте я получаю просто ее, а не с моим префиксом "MYERR".

Как добиться,что бы был мой обработчик?

Спасибо
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38842801
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,
в отладчике JS смотрели?
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38842854
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
Вообще убери exception в респонзе получишь конкретно что и в какой строке у тебя ошибка.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38842861
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
У тебя явно где то до этого ошибка обрабатывается, функция, процедура которую ты вызываешь..
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38842905
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Я и получаю текст ошибки, но мне надо получить ошибку с мой добавочной информацией.

Никаких обработчиков больше нет, этот единственный.

Тупик прям какой то, где он интересно раньше в эсцепшен сваливается...
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38842927
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
1. Вызывается не та процедура, которую ты правишь.
2. в коде return
3. Маловероятная, Оракловая индо-функция может перехватывать ошибку, записать текст и вызвать return; :)

Первое самое вероятно, особенно когда код копируешь :)
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38842971
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,

Если ничего не поможет, кидай код яваскрипта, процесса.
будем лукать вместе.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38843063
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое точно нет.

Что бы это репродуцировать просто создайте AP и введите не код а просто, допустим "ddddddddd". Сохранение пройдет нормально, а вот когда он будет вызван через ajax, то придет ошибка, не не через обработчик.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
ddddddddddd;
htp.p('MYERR:0');
EXCEPTION
          WHEN OTHERS THEN
          	htp.p('MYERR:'||SQLERRM);
END;
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38843100
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,
программист не может писать без отладчика
17051061
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38843115
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Не в тему потому что говорите вот и не реагирую.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38843123
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikPetro123,
Не в тему потому что говорите вот и не реагирую.
угу. Пиши дальше наугад.
EXCEPTION
raise;
WHEN OTHERS THEN
END;
Да. Не подавляет исключение. Особенность apex.
Удачи!
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38843878
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
Ну все понятно, попробуй свой же пример.
Твой код не компилится(ошибка), поэтому тебе возвращает ошибку компилятор, а не твой процесс.

Код: javascript
1.
2.
3.
4.
var test = new htmldb_Get(null, $v('pFlowId'),'APPLICATION_PROCESS=TEST_APP',  0);
	gReturn = test.get();
	test = null;
	console.log(gReturn);


Код: plaintext
1.
2.
3.
 sqlerrm:ORA-06550: Строка 2, столбец 1:
PLS-00201: идентификатор 'DDDDDDDDDDD' должен быть объявлен
ORA-06550: Строка 2, столбец 1:
PL/SQL: Statement ignored
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38843885
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
AP не парсится в момент сохранения, наверное это бага Апекса, но это давно известно, я даже и не подумал об этом.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38844013
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно по поводу "DDDDDDD", но если например вставляется строка в таблицу с уже имеющимся id то все равно не отрабатывает мой обработчик.

На это что скажете?
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38844035
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
Ты меня видимо не услышал. Я говорю о то, что Ваша процедура просто не запускается, попробуй выполни процедуру из sqlplus.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38844041
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,
тебе ничего не мешает провести свой тест с генерацией ошибки:
Код: sql
1.
Raise_Application_Error(-20200, 'ПЕРЕХВАТИ МЕНЯ');


и сюда результат.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38844209
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelAP не парсится в момент сохранения, наверное это бага Апекса
Нет, это возможность подставлять значения:

Код: plsql
1.
2.
3.
if ... then
  &MY_SUBSTITUTION_STRING.;
end if;
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845211
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Я услышал)

Но такое происходит и с наступлением "правильной" ошибки, типа,
Код: plaintext
1 ORA-00001: unique constraint (TBL_PK) violated 
.

Которая возникает уже на этапе выполнения, а не компиляции блока.

И все равно не удается ее перехватить, она вываливается мимо моего обработчика.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845264
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,
Провел тест у себя, AP такой.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Begin
	insert into user_table (
		user_table_id,
		lastname,
		firstname
	)  values  (
		 1
		,'kasik'
		,'лентяй'
	);
	exception when OTHERS then sys.htp.p('ПЕРЕХВАТИЛ ОШИБКУ-'||sqlerrm);
End;


Javascript выше, выполняю прямо в консоли.
Результат:
Код: plaintext
 ПЕРЕХВАТИЛ ОШИБКУ-ORA-00001: нарушено ограничение уникальности 

Еще одно предположение есть, сделай так и попробуй еще раз.
Код: plsql
1.
ALTER TABLE  YOU_TABLE DISABLE ALL TRIGGERS



В вот это точно поможет :)
Код: plsql
1.
ALTER TABLE table_name disable CONSTRAINT constraint_name;
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845278
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerblkangelAP не парсится в момент сохранения, наверное это бага Апекса
Нет, это возможность подставлять значения:

Код: plsql
1.
2.
3.
if ... then
  &MY_SUBSTITUTION_STRING.;
end if;


Хммм, не знал что а AP можно производить такую подмену. Но
- если &MY_SUBSTITUTION_STRING. может быть только переменной приложение(Application Items), есть ли смысл в этом?
- Такая подстановка на страничке, является статичной, т.е. подмена происходит в момент отрисовки страницы, так же происходит с подстановкой в AP.

И вообще это отдельная тема. :)
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845301
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Попросил бы на личности не переходить!

Я не писал бы о данной ошибке, если бы не проверил.
У меня вот это выдает:
Код: plaintext
sqlerrm:ORA-20001: get_dbms_sql_cursor error ORA-00923: FROM keyword not found where expected ORA-00001: unique constraint (ACCOUNTS_PK) violated 


По разному пробовал.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845320
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,
если у меня перехватывает
Raise_Application_Error ,
то значит вся тема из-за невнимательности.
Я имею ввиду, рантайм ошибки APEX нормально перехватывает.
Если текст синтаксически правильный (тут он где-то проверяет, где-то нет )) )
авторПо разному пробовал.
давай полный текст сюда и стек-трейс ошибки дословно.
Проверим.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845323
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasikblkangel,
Код: plaintext
sqlerrm:ORA-20001: get_dbms_sql_cursor error ORA-00923: FROM keyword not found where expected ORA-00001: unique constraint (ACCOUNTS_PK) violated 

Обрати внимание на номер первой ошибки. Это пользовательский номер. А следовательно ошибку перехватили и обработали.
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845348
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Begin
	insert into krn_user (
		krn_user_id,
		krn_position_id,
		lastname,
		firstname
	)  values  (
		 1
		,1
		,'kasik'
		,'Лучший программист'
	);
	exception when OTHERS then 
		raise_application_error(-20001,sqlerrm);
	--sys.htp.p('ПЕРЕХВАТИЛ ОШИБКУ-'||sqlerrm);
End;


В результате вот так получилось.
Код: plaintext
qlerrm:ORA-20001: ORA-00001: нарушено ограничение уникальности
...
Рейтинг: 0 / 0
Не обрабатывает EXCEPTION
    #38845367
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все разобрался!

Была трабла с апострофами.

Всем спасибо за участие в теме.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Не обрабатывает EXCEPTION
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]