Обработка исключений Гудов А.М., Завозкин С.Ю. 2005.

Slides:



Advertisements
Similar presentations
Пример реализации приложения Программа отправки и анализа SMS-сообщений (через с WEB-интерфейсом.
Advertisements

C ервер Oracle Некоторые возможности интеграции. Сервер Oracle – некоторые возможности интеграции  Работа с COM- объектами на сервере  Формирование.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Разработка информационной системы накопительной программы лояльности для мобильных устройств Автор: Дьяченко Василий Владимирович мат-мех, 545 группа Научный.
Директивы OpenMP Юрий Долгов, Дмитрий Шкурко. Optimization of applications for Intel* platforms Синтаксис OpenMP Общий синтаксис OpenMP директив Directive.
Chapter 4B: More Advanced PL/SQL Programming
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Freelance: правила игры. КИРИЛЛ РЕЗНИЧЕНКО + СПЕЦИАЛИСТ В ОБЛАСТИ 3D ГРАФИКИ + КООРДИНАТОР ОБРАЗОВАТЕЛЬНОГО ЦЕНТРА КОМПАНИИ AUTODESK ПРИ ВГУ.
Обработка запросов с использованием курсоров
Универмаги в большей степени, чем специализированные магазины заинтересованы в поддержании своей репутации. Как данный фактор может повлиять на систему.
PL/SQL Agenda: Basic PL/SQL block structure
События. События Важная роль делегатов заключается в том, что на них основана модель событий С#. Применение событий вовсе не ограничено приложениями с.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Exception types In Oracle PL/SQL. Types of exceptions Named system exceptions –Raised as a result of an error in PL/SQL or RDBMS processing. Named programmer-defined.
Exception Handling in PL/SQL. POINTS TO DISCUSS What is Exception Handling Structure of Exception Handling Section Types of Exceptions.
Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Обработка исключений.
XML - расширенный язык разметки Моисеевой О. Макушиной Д. (eXtensible Markup Language)
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
PL/SQL block has the following structure: DECLARE Declaration statements BEGIN Executable statements EXCEPTION Exception-handling statements END ;
PL/SQL Bulk Collections in Oracle 9i and 10g Kent Crotty Burleson Consulting October 13, 2006.
PL/SQL. Обработка исключительных ситуаций EXCEPTION WHEN имя_исключительной_ситуации1 THEN последовательность_операторов1; WHEN имя_исключительной_ситуации2.
Cursor and Exception Handling By Nidhi Bhatnagar.
Oracle10g Developer: PL/SQL Programming1 Objectives Manipulating data with cursors Managing errors with exception handlers Addressing exception-handling.
Chapter 4 Cursors and Exception Handling Oracle10g Developer:
Exceptions Oracle Database PL/SQL 10g Programming Chapter 7.
EE Copyright س Oracle Corporation, All rights reserved. ® Review of PL/SQL.
Lecture 4 PL/SQL language. PL/SQL – procedural SQL Allows combining procedural and SQL code PL/SQL code is compiled, including SQL commands PL/SQL code.
Cursor. Cursors Operations Cursors adalah suatu nama area yang berisi hasil dari suatu statement SQL. 1. OPEN 2. FETCH 3. CLOSE.
L/O/G/O Working with Composite Data Types. Objectives After completing this lesson, you should be able to do the following: –Create user-defined PL/SQL.
Writing Friendly Letters A Write On Activity. Friendly letters have five parts: 1. The Heading 2. The Salutation (greeting) 3. The Body (some paragraphs)
CS178 Database Management PL/SQL session 8 References: ORACLE 9i PROGRAMMING A Primer Rajshekhar Sunderraman.
CSIT 313 DB PROGRAMMING EXCEPTION HANDLING. In PL/SQL, an error condition is called an exception. An exception can be either –internally defined (by the.
PL/SQL Oracle's Database Programming Language. Remember: Set serveroutput on With serveroutput off (default) executing procedure: With serveroutput on:
Trapping Oracle Server Exceptions. 2 home back first prev next last What Will I Learn? Describe and provide an example of an error defined by the Oracle.
PL/SQL Block Structure DECLARE - Optional Variables, cursors, user-defined exceptions BEGIN - Mandatory SQL Statements PL/SQL Statements EXCEPTIONS - Optional.
Distributed Database Applications COSC 5050 Week Five.
Exceptions in PL/SQL Please use speaker notes for additional information!
Oracle 8i Exception Handling. General Syntax DECLARE --- BEGIN --- EXCEPTION WHEN exception_name1 THEN -Error handling statements WHEN exception_name2.
Using SQL in PL/SQL ITEC 224 Database Programming.
Chapter Sixteen Cursors Objective: – Introduction to cursors – Use of cursors in a database record – Implicit & explicit cursors – Cursors & loops – Cursors.
PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 4 Cursors and Exception Handling.
1 Handling Exceptions Part F. 2 Handling Exceptions with PL/SQL What is an exception? Identifier in PL/SQL that is raised during execution What is an.
Chapter 16 Cursors and Exceptions. Chapter Objectives  Determine when an explicit cursor is required  Declare, open, and close an explicit cursor 
Chapter 18: Exception Handling1 Chapter Eighteen Exception Handling Objective: – Define exceptions – List types of exception handlers – Trap errors – Exception.
Copyright  Oracle Corporation, All rights reserved. 23 Handling Exceptions.
Program with PL/SQL Lesson 3. Interacting with the Oracle Server.
Опыт использования Object Change Notification Петрелевич Сергей 1.
Oracle 数据库应用 -- PL/SQL 进阶 (3) & Oracle DBA 2016/5/ /5/10.
DB Programming Course Lecture 4. Errors Two types of errors can be found in a program: compilation errors and runtime errors. There is a special section.
1 Copyright © 2004, Oracle. All rights reserved. PL/SQL Programming Concepts: Review.
Free Powerpoint Templates Page 1 Free Powerpoint Templatesبسم الله الرحمن الرحيم عدد الساعات: 2 نظري+2عملي الرمز:314 حسب المتطلبات:223 حسب (مبادئ قواعد.
Отчетность средствами Reporting Services 2008
ITEC 224 Database Programming
CHAPTER 5 EXCEPTION HANDLING
Handling Exceptions.
SQL Stored Triggers Presented by: Dr. Samir Tartir
Oracle11g: PL/SQL Programming Chapter 4 Cursors and Exception Handling.
Remote user authentication
Oracle9i Developer: PL/SQL Programming Chapter 3 PL/SQL Processing.
Handling Exceptions.
Database Programming PL SQL.
Agenda Summary of last class Cursors Loops Records Simple Loops
Advanced PL/SQL Programing
Handling Exceptions.
Handling Exceptions.
Database Management Systems 2
Handling Exceptions.
Updating Databases With Open SQL
Database Programming Using Oracle 11g
Updating Databases With Open SQL
Presentation transcript:

Обработка исключений Гудов А.М., Завозкин С.Ю. 2005

Общие понятия Что такое исключение? Переменная в PL/SQL, возбуждаемая во время выполнения. Как возникает исключение? –Возбуждается сервером. –Возбуждается явно. Как его обрабатывать? –Перехватывать с помощью обработчика исключений. –Распространить в вызывающую среду.

Обработка исключений [DECLARE] BEGIN EXCEPTION END; [DECLARE] BEGIN EXCEPTION END; Перехват исключения Распространение в вызывающую среду Возбуждение исключения Перехват Возбуждение исключения Исключение не перехвачено

Типы исключений Предопределенные, возбуждаемые сервером. Непредопределенные, возбуждаемые сервером. пользовательские Возбуждаются неявно Возбуждаются явно

Перехват исключений EXCEPTION When исключение1 [or исключение2 …] Then оператор1;... [When исключение3 [or исключение4 …] Then оператор1;... When OTHERS Then оператор1;...]

Перехват предопределенных исключений В секции обработки ссылка на стандартное имя. Некоторые стандартные имена исключений: –NO_DATA_FOUND –TOO_MANY_ROWS –INVALID_CURSOR –ZERO_DIVIDE –DUP_VAL_OF_INDEX

Предопределенные исключения: пример Procedure test_exception_1 (v_product_id IN s_product.id%type) IS V_id s_product.id%type; BEGIN Select id into v_idfrom s_product where id=v_product_id; Delete from s_invertory where product_id=v_product_id; Commit; EXCEPTION When NO_DATA_FOUND Then rollback; text_io.put_line(‘Product number is invalid’); When TOO_MANY_ROWS Then rollback; text_io.put_line(‘Data corraption in table S_PRODUCT’); When OTHERS Then rollback; text_io.put_line(‘Other error occurred’); END;

Перехват непредопределенных исключений Объявление Связывание Ссылка Присвоение имени Включение в предложение PRAGMA EXCEPTION_INIT Обработка исключения Декларативная секция Секция обработчика

Непредопределенное исключение: пример DECLARE E_product_rEXCEPTION; PRAGMA EXCEPTION_INIT (E_product_r, -2222); … BEGIN … EXCEPTION When E_product_r Then Text_io.put_line(‘Integrity constraint violated’); … END;

Перехват пользовательских исключений Объявление Возбуждение Ссылка Присвоение имени Явное возбуждение с помощью оператора RAISE Обработка исключения Декларативная секция Секция обработчика Исполняемая секция

Пользовательское исключение: пример DECLARE E_product_rEXCEPTION; … BEGIN … RAISE E_product_r; … EXCEPTION When E_product_r Then Text_io.put_line(‘Integrity constraint violated’); … END;

Функции перехвата исключений Обработчик исключения WHEN OTHERS –Перехватывает все необработанные исключения. –Должен быть последним обработчиком. SQLCODE –Возвращает числовой код ошибки. –Значения: 0 Исключений не было 1 Пользовательское исключение +100 Исключение NO_DATA_FOUND -n Номер ошибки сервера SQLERRM –Возвращает стандартное сообщение об ошибке.

Функции перехвата исключений: пример … BEGIN … EXCEPTION When OTHERS Then rollback; Text_io.put_line(‘Unknown error: ’||SQLCODE||’ ‘||SQLERRM); … END;

Распространение исключений в вызывающую среду DECLARE E_product_rEXCEPTION; E_integrityEXCEPTION; PRAGMA EXCEPTION_INIT (E_product_r, -2222); … BEGIN FOR I IN emp_cursor LOOP begin select …; update …; … RAISE E_integrity; … exception WHEN E_product_r THEN … WHEN E_integrity THEN end; END LOOP; EXCEPTION When NO_DATA_FOUND Then … When OTHERS Then … … END;

Практическое занятие 1. Создайте процедуру, которая бы обновляла номера регионов для служащих отделов. (Входные данные – название региона и новый номер отдела для данного служащего). а) Напишите обработчик исключений, который будет выдавать сообщение о том, что указанный регион не существует б) Напишите обработчик исключений, который бы выдавал пользователю сообщение о том, что для указанного региона уже есть отдел с таким названием в) Напишите обработчик исключений, который выдавал бы пользователю сообщение о том, что указанный номер отдела не существует (используйте атрибут SQL%NOTFOUND и возбудите исключение вручную)

2. Напишите процедуру для вывода на фамилии и названия отдела для служащих, чья заработная плата лежит в диапазоне плюс-минус 100$ от введенного значения. а) Напишите обработчик исключений, который будет выдавать сообщение о том, что служащих с такой зарплатой нет. б) Напишите обработчик исключений, который будет выдавать сообщение о том, что служащих с такой зарплатой несколько. Сообщение должно указывать, сколько сотрудников попадает в этот диапазон зарплат.