🗊Презентация Обработка исключений. Предопределенные ИС

Категория: Информатика
Нажмите для полного просмотра!
Обработка исключений. Предопределенные ИС, слайд №1Обработка исключений. Предопределенные ИС, слайд №2Обработка исключений. Предопределенные ИС, слайд №3Обработка исключений. Предопределенные ИС, слайд №4Обработка исключений. Предопределенные ИС, слайд №5Обработка исключений. Предопределенные ИС, слайд №6Обработка исключений. Предопределенные ИС, слайд №7Обработка исключений. Предопределенные ИС, слайд №8Обработка исключений. Предопределенные ИС, слайд №9Обработка исключений. Предопределенные ИС, слайд №10Обработка исключений. Предопределенные ИС, слайд №11Обработка исключений. Предопределенные ИС, слайд №12Обработка исключений. Предопределенные ИС, слайд №13Обработка исключений. Предопределенные ИС, слайд №14Обработка исключений. Предопределенные ИС, слайд №15Обработка исключений. Предопределенные ИС, слайд №16Обработка исключений. Предопределенные ИС, слайд №17Обработка исключений. Предопределенные ИС, слайд №18Обработка исключений. Предопределенные ИС, слайд №19Обработка исключений. Предопределенные ИС, слайд №20Обработка исключений. Предопределенные ИС, слайд №21Обработка исключений. Предопределенные ИС, слайд №22

Содержание

Вы можете ознакомиться и скачать презентацию на тему Обработка исключений. Предопределенные ИС. Доклад-сообщение содержит 22 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Курс «Базы данных»

Тема. Программирование 
на языке PL/SQL. Часть 5
Барабанщиков
Игорь Витальевич
Описание слайда:
Курс «Базы данных» Тема. Программирование на языке PL/SQL. Часть 5 Барабанщиков Игорь Витальевич

Слайд 2





План  лекции
Обработка исключений
Предопределенные ИС
Непредопределенные ИС
Пользовательские ИС
Описание слайда:
План лекции Обработка исключений Предопределенные ИС Непредопределенные ИС Пользовательские ИС

Слайд 3





Исключительные  ситуации
При выполнении блока PL/SQL могут возникнуть разные ошибки.
Эти ошибки должны быть обработаны.
Для обработки ИС в блоке PL/SQL предназначен раздел EXCEPTION.
Описание слайда:
Исключительные ситуации При выполнении блока PL/SQL могут возникнуть разные ошибки. Эти ошибки должны быть обработаны. Для обработки ИС в блоке PL/SQL предназначен раздел EXCEPTION.

Слайд 4





Обработка исключительных ситуаций
В случае возбуждения исключительной ситуации блок всегда прекращает работу.
Можно задать обработчик исключения для выполнения заключительных действий.
Обработчики ИС помещают в раздел EXCEPTION блока PL/SQL.
Описание слайда:
Обработка исключительных ситуаций В случае возбуждения исключительной ситуации блок всегда прекращает работу. Можно задать обработчик исключения для выполнения заключительных действий. Обработчики ИС помещают в раздел EXCEPTION блока PL/SQL.

Слайд 5





Синтаксис  ИС
      Каждый обработчик исключения состоит из ключевого слова WHEN, задающего исключение, за которым следует последовательность команд, выполняемых в случае, если исключение возбуждено. 
      Если возникает ИС, то перед выходом из блока PL/SQL выполняется 
только  один 
обработчик исключений.
Описание слайда:
Синтаксис ИС Каждый обработчик исключения состоит из ключевого слова WHEN, задающего исключение, за которым следует последовательность команд, выполняемых в случае, если исключение возбуждено.  Если возникает ИС, то перед выходом из блока PL/SQL выполняется  только один  обработчик исключений.

Слайд 6





Необработанная  в  блоке  ИС
Необработанные в блоке ИС приводят к его аварийному завершению.
В этом случае управление передается в вызывающую среду.
Описание слайда:
Необработанная в блоке ИС Необработанные в блоке ИС приводят к его аварийному завершению. В этом случае управление передается в вызывающую среду.

Слайд 7





Способы возбуждения ИС
Явный – имеет место ошибка СУБД Oracle, исключение возбуждается автоматически. Примеры: 
    - деление на ноль, 
    - нарушение уникальности.
Неявный – исключение возбуждается  в блоке искусственно с помощью команды RAISE.
Описание слайда:
Способы возбуждения ИС Явный – имеет место ошибка СУБД Oracle, исключение возбуждается автоматически. Примеры: - деление на ноль, - нарушение уникальности. Неявный – исключение возбуждается в блоке искусственно с помощью команды RAISE.

Слайд 8





Типы  ИС
Описание слайда:
Типы ИС

Слайд 9





Предопределенные  исключения
Описание слайда:
Предопределенные исключения

Слайд 10





Пример предопределенных ИС
DECLARE
    v_id   emp.emp_id%TYPE;
BEGIN
    SELECT emp_id  INTO v_id    -- должна возвращать 1 строку
        FROM emp  WHERE ename = ‘Иванов’;
    -- другие  команды;
EXCEPTION
    WHEN no_data_found  THEN   -- обработчик для 1-й ИС
        dbms_output.put_line(‘Сотрудник не найден’);
    WHEN too_many_rows THEN  -- обработчик для 2-й ИС
        dbms_output.put_line(‘Найдено много сотрудников’);
END;
Описание слайда:
Пример предопределенных ИС DECLARE v_id emp.emp_id%TYPE; BEGIN SELECT emp_id INTO v_id -- должна возвращать 1 строку FROM emp WHERE ename = ‘Иванов’; -- другие команды; EXCEPTION WHEN no_data_found THEN -- обработчик для 1-й ИС dbms_output.put_line(‘Сотрудник не найден’); WHEN too_many_rows THEN -- обработчик для 2-й ИС dbms_output.put_line(‘Найдено много сотрудников’); END;

Слайд 11





Непредопределенные ИС
Для перехвата непредопределенной  ИС, возбуждаемой сервером, необходимо: 
1. в декларативной секции блока:
    - объявить исключительную ситуацию
    - связать ИС со стандартной ошибкой Oracle. 
2. в секции обработки исключений:
     - на ИС можно ссылаться по объявленному имени.
Описание слайда:
Непредопределенные ИС Для перехвата непредопределенной ИС, возбуждаемой сервером, необходимо: 1. в декларативной секции блока: - объявить исключительную ситуацию - связать ИС со стандартной ошибкой Oracle. 2. в секции обработки исключений: - на ИС можно ссылаться по объявленному имени.

Слайд 12


Обработка исключений. Предопределенные ИС, слайд №12
Описание слайда:

Слайд 13





Объявление непредопределенной ИС
Для  связывания  ошибки  Oracle  с  именем исключения, используется  директива компилятора  PRAGMA  EXCEPTION_INIT.
Синтаксис:
    DECLARE
         имя_ИС  EXCEPTION;
         PRAGMA  EXCEPTION_INIT(имя_ИС, ошибка);
    BEGIN
         . . .
Описание слайда:
Объявление непредопределенной ИС Для связывания ошибки Oracle с именем исключения, используется директива компилятора  PRAGMA EXCEPTION_INIT. Синтаксис: DECLARE имя_ИС EXCEPTION; PRAGMA EXCEPTION_INIT(имя_ИС, ошибка); BEGIN . . .

Слайд 14





Пример непредопределенной ИС
CREATE PROCEDURE  del_dept(p_deptno  number)  IS
   e_emp_exist   EXCEPTION;
   PRAGMA  EXCEPTION_INIT(e_emp_exist, -2292);
BEGIN
   DELETE  FROM  dept  WHERE  deptno=p_deptno;
   COMMIT;
EXCEPTION
   WHEN  e_emp_exist  THEN
       dbms_output.put_line(‘Нельзя удалять отдел!’);
END;
Описание слайда:
Пример непредопределенной ИС CREATE PROCEDURE del_dept(p_deptno number) IS e_emp_exist EXCEPTION; PRAGMA EXCEPTION_INIT(e_emp_exist, -2292); BEGIN DELETE FROM dept WHERE deptno=p_deptno; COMMIT; EXCEPTION WHEN e_emp_exist THEN dbms_output.put_line(‘Нельзя удалять отдел!’); END;

Слайд 15





Функции для перехвата ИС
SQLCODE – возвращает  числовой  код ошибки.
SQLERRM – возвращает сообщение, связанное с кодом ошибки
    Эти функции используют совместно с обработчиком OTHERS. 
    Обработчик OTHERS д.б.  последним  в разделе EXCEPTION.
Описание слайда:
Функции для перехвата ИС SQLCODE – возвращает числовой код ошибки. SQLERRM – возвращает сообщение, связанное с кодом ошибки Эти функции используют совместно с обработчиком OTHERS. Обработчик OTHERS д.б. последним в разделе EXCEPTION.

Слайд 16





Пример  обработчика  OTHERS
DECLARE
    v_err_code  NUMBER;
    v_err_msg   VARCHAR2(200);
BEGIN
    . . .
EXCEPTION
    WHEN others THEN
        v_err_code := SQLCODE;
        v_err_msg  := SQLERRM;
        INSERT INTO t_error VALUES(v_err_code, v_err_msg);
END;
Описание слайда:
Пример обработчика OTHERS DECLARE v_err_code NUMBER; v_err_msg VARCHAR2(200); BEGIN . . . EXCEPTION WHEN others THEN v_err_code := SQLCODE; v_err_msg := SQLERRM; INSERT INTO t_error VALUES(v_err_code, v_err_msg); END;

Слайд 17





PL/SQL позволяет определять и возбуждать собственные исключения.   Для этого они должны быть объявлены в декларативной секции и возбуждены командой RAISE
Описание слайда:
PL/SQL позволяет определять и возбуждать собственные исключения. Для этого они должны быть объявлены в декларативной секции и возбуждены командой RAISE

Слайд 18





Пример  пользовательской  ИС
DECLARE
    e_error_dept  EXCEPTION;   -- объявление ИС
BEGIN
    UPDATE  dept  SET  dname=‘IT’  WHERE id=777;
    IF  sql%notfound  THEN
         RAISE  e_error_dept;        -- возбуждение ИС
    END  IF;
EXCEPTION
    WHEN  e_eror_dept  THEN    -- обработка ИС
        dbms_output.put_line(‘Нет такого отдела!’);
END;
Описание слайда:
Пример пользовательской ИС DECLARE e_error_dept EXCEPTION; -- объявление ИС BEGIN UPDATE dept SET dname=‘IT’ WHERE id=777; IF sql%notfound THEN RAISE e_error_dept; -- возбуждение ИС END IF; EXCEPTION WHEN e_eror_dept THEN -- обработка ИС dbms_output.put_line(‘Нет такого отдела!’); END;

Слайд 19





Процедура RAISE_APPLICATION_ERROR
Позволяет посылать собственные пользовательские сообщения об исключениях из хранимых программ. 
Возвращает пользователю информацию об исключении тем же способом, которым пользуется сервер Oraсle для возвращения информации для прочих исключений.
Вызывается  только  из  хранимых подпрограмм.
Описание слайда:
Процедура RAISE_APPLICATION_ERROR Позволяет посылать собственные пользовательские сообщения об исключениях из хранимых программ. Возвращает пользователю информацию об исключении тем же способом, которым пользуется сервер Oraсle для возвращения информации для прочих исключений. Вызывается только из хранимых подпрограмм.

Слайд 20





Синтаксис RAISE_APPLICATION_ERROR 
raise_application_error(ошибка, сообщение, {TRUE | FALSE})

Ошибка – номер исключения в диапазоне -20000…-20999
Сообщение – текст сообщения об исключении, заданный
                            пользователем (до 2048 байт).
TRUE | FALSE – необязательный логический параметр.
TRUE – исключение поместить в стек предыдущих ошибок.
FALSE – исключение должно заместить все предыдущие
               ошибки.
Описание слайда:
Синтаксис RAISE_APPLICATION_ERROR raise_application_error(ошибка, сообщение, {TRUE | FALSE}) Ошибка – номер исключения в диапазоне -20000…-20999 Сообщение – текст сообщения об исключении, заданный пользователем (до 2048 байт). TRUE | FALSE – необязательный логический параметр. TRUE – исключение поместить в стек предыдущих ошибок. FALSE – исключение должно заместить все предыдущие ошибки.

Слайд 21





Пример  RAISE_APPLICATION_ERROR
BEGIN
    . . .
    DELETE  FROM  emp 
         WHERE  empno = v_id;
    IF  sql%notfound  THEN
        raise_application_error(-20025, ’Не найден’);
    END  IF;
    . . .
Описание слайда:
Пример RAISE_APPLICATION_ERROR BEGIN . . . DELETE FROM emp WHERE empno = v_id; IF sql%notfound THEN raise_application_error(-20025, ’Не найден’); END IF; . . .

Слайд 22





Итоги
PL/SQL мощный язык для программирования серверной логики.
Он значительно расширяет возможности SQL.
Описание слайда:
Итоги PL/SQL мощный язык для программирования серверной логики. Он значительно расширяет возможности SQL.



Похожие презентации
Mypresentation.ru
Загрузить презентацию