Обработка пользоватеского исключения

Как можно распознать свое исключение?
В функции есть код типа:

BEGIN
.....
IF is_balance = 0 THEN
      RAISE EXCEPTION 'Error description!';
END IF;
......
EXCEPTION WHEN ???? THEN errCode := -1;
    RETURN errCode;
END;

Что надо напсиать на месте ????, чтобы распознать ранее сгенерированное исключение?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Мануал читали?

Спасибо за ответ. Может, я

Спасибо за ответ.
Может, я что-то не понимаю... Но в мануале показано, как отловить стандартное исключение. Например, деление на ноль:

...
WHEN division_by_zero THEN
...

В моем случае исключение генерируется в коде функции, соответственно для него нет предопределенного идентификатора (типа division_by_zero). Как быть в таком случае?

Из мануала

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
EXCEPTION
    WHEN condition [ OR condition ... ] THEN
        handler_statements
    [ WHEN condition [ OR condition ... ] THEN
          handler_statements
      ... ]
END;

Кто мешает вместо division_by_zero подставить своё условие? Например, проверить значение переменной? condition - это ЛЮБОЕ условие, как я понимаю.

Спасибо за подсказку...

Спасибо за подсказку... сработал стереотип использования других СУБД.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023