В PLSQL
возникновение исключения останавливает выполнение программы в точке исключения и переходит к блоку EXCEPTION
, если таковой имеется, для обработки, иначе вызывает исключение для клиента.
Вы можете увидеть это поведение в тестовом блоке.
Здесь мы будем печатать до и после исключения и можем наблюдать следующий оператор после того, как исключение не будет напечатано:
BEGIN
DBMS_OUTPUT.PUT_LINE('About to throw an exception');
RAISE_APPLICATION_ERROR(-20001,'Exception');
DBMS_OUTPUT.PUT_LINE('Done throwing exception');
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Handling the exception');
END;
/
Результат:
About to throw an exception
Handling the exception
Примечание. В приведенном вами примере блок EXCEPTION
обрабатывает только исключения NO DATA FOUND
, поэтому другие типы исключений будут вызываться вместо выполнения через обработчик исключений.Но в любом случае обработка остановится в точке исключения.