Один обработчик на для нескольких исключений в pl/sql Oracle

Статьи про Oracle -> Программирование

Один обработчик на для нескольких исключений в pl/sql Oracle

v:1.0 03.12.2011
Петрелевич Сергей

Интересно, что в pl/sql Oracle для нескольких исключений можно задать один обработчик. Очень удобная возможность.
Посмотрите, следующий код, функции testProc1 и testProc1 идентичны.

create or replace package body Err as

procedure testProc1 is
begin
dbms_output.put_line('testProc1');
--raise too_many_rows;
--raise no_data_found;
exception
 when no_data_found or too_many_rows then
  dbms_output.put_line('error:'||dbms_utility.format_error_stack);
end;

procedure testProc2 is
begin
dbms_output.put_line('testProc2');
--raise too_many_rows;
--raise no_data_found;
exception
 when no_data_found then
  dbms_output.put_line('error:'||dbms_utility.format_error_stack);
 when too_many_rows then
  dbms_output.put_line('error:'||dbms_utility.format_error_stack);
end;

end;

Т.е. можно написать так:
exception
 when no_data_found then
  ...
 when too_many_rows then
  ...
end;
А можно и так:
exception
 when no_data_found or too_many_rows then
  ...
end;
Второй вариант намного лучше.

Метки: PL/SQL  

Комментарии.

Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: <a>, <b>, <i>, <br>.