Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 как после возбуждения exception прекратить выполнение кода?  [new]
Зеленка
Guest
Доброе утро.
Смысл exception - перехватить возможные ошибки и успешно завершить pl/sql-ный блок.
Т.е., если я правильно понимаю, после обработки искл ситуации управление возвращается к коду?

Мне надо при отлове exception чтобы из блока выкидывало с сообщением об ошибке.

у меня есть код
declare cnt number;
begin
select <..> into cnt
<..>;
IF cnt>0 THEN RAISE_APPLICATION_ERROR(-20001, 'has already exists!');
END IF;
<большой кусок кода>
end;

Надо чтобы после raise процесс выполнения кода остановился.
Подскажите, пожалуйста, как это реализовать.
25 июл 08, 10:27    [5984454]     Ответить | Цитировать Сообщить модератору
 Re: как после возбуждения exception прекратить выполнение кода?  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
И чего - он не останавливается? :)

Чтобы после отлова перегенерировать - пишите raise;
25 июл 08, 10:30    [5984476]     Ответить | Цитировать Сообщить модератору
 Re: как после возбуждения exception прекратить выполнение кода?  [new]
ZVV
Member

Откуда: Минск
Сообщений: 744
управление НЕ возвращается к коду.
в вашем случае анонимного блока ошибка выходит сразу пользователю.
если бы был перехватчик исключений, то он бы перехватил исключение.
если б это была процедура вызванная из другого блока, исключение бы вернулось в вызывающую процедуру и могло было бы быть перехвачено там..
далее по рекурсии :)
----------------
Zhirenkov Vitaly
25 июл 08, 10:31    [5984482]     Ответить | Цитировать Сообщить модератору
 Re: как после возбуждения exception прекратить выполнение кода?  [new]
Зеленка
Guest
спасибо.
подумала, поняла что чушь спросила.
вопрос снят.
25 июл 08, 10:34    [5984502]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить