معالجة الاستثناءات.

Slides:



Advertisements
Similar presentations
Conjunctions الروابـــــــــط.
Advertisements

تغيير الرقم السري لبنك المعلومات
Question-Tags الأسئلة المذيلة
Active & Passive المبني للمعلوم و المبني للمجهول
Adverbsالظروف [الأحوال]
منصور البصيلي خالد الزهراني
PL/SQL (Embedded SQL) Introduction Benefits Basic Constructs
PL/SQL Agenda: Basic PL/SQL block structure
Exception Handling in PL/SQL. POINTS TO DISCUSS What is Exception Handling Structure of Exception Handling Section Types of Exceptions.
محرك البحث الإدريسي غزوان البريكان
PL/SQL block has the following structure: DECLARE Declaration statements BEGIN Executable statements EXCEPTION Exception-handling statements END ;
Cursor and Exception Handling By Nidhi Bhatnagar.
EE Copyright س Oracle Corporation, All rights reserved. ® Review of PL/SQL.
Frame Part of timeline panel You can remove normal frames from a certain layer by (MRC + Remove Frames). يمكنك ازالة الاطر العادية من طبقة معينة باستخدام.
About PL/SQL –PL/SQL is an extension to SQL with design features of programming languages. –Data manipulation and query statements of SQL are included.
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.
 SQL statements are not case sensitive.  SQL statements can be on one or more lines.  Keywords cannot be abbreviated or split across lines.
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.
1 CursorsCursors. 2 SQL Cursor A cursor is a private SQL work area. A cursor is a private SQL work area. There are two types of cursors: There are two.
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.
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.
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.
Alphabet game…. Think of a word – Your partner has to guess that word – you can give ONE word clues – no YES/NO responses allowed!!
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.
مقدمة قواعد بيانات - أوراكل الفـصـل الــرابــع دوال الصف الواحد أ. جمانه الحازمي.
Free Powerpoint Templates Page 1 Free Powerpoint Templatesبسم الله الرحمن الرحيم عدد الساعات: 2 نظري+2عملي الرمز:314 حسب المتطلبات:223 حسب (مبادئ قواعد.
دبلوم الإرشاد الأسري. phrasal verb  The term phrasal verb is commonly applied to two or three distinct but related constructions in English: a verb and.
ITEC 224 Database Programming
CHAPTER 5 EXCEPTION HANDLING
State Chart Diagrams.
Handling Exceptions.
Oracle9i Developer: PL/SQL Programming Chapter 3 PL/SQL Processing.
Handling Exceptions.
لنفرض أن هدف التجربة هو مقارنة نوعين من الأعلاف (A و B) لتغذية أبقار حلوب خلال 3 شهور. وتم اختيار عشرين بقرة متشابهة ( في الوزن / العمر / السلالة / الموسم.
لنفرض أن هدف التجربة هو مقارنة صنفين من السماد (A و B) من حيث كمية محصول نوع معين من القمح.
Interacting with the Oracle Server
كتابة الجمل التنفيذية في PL/SQL
محاضرة 4, 5: مفهوم الأصناف و الكائنات و التعامل معها
How to contact me Twitter Blog :-
10 0× 1 = 4× 4 = (وحدات)4 10 1× = 5 50 = (عشرات)5
برمجة قواعد بيانات تطبيق مفهوم الحماية في النماذج
تابع :تطبيع البيانات.
1.الدوال Function 2.الاجراءاتSub Procedure 3.وحده نمطيه Add Module
المخدم الرئيسي في الشبكات
تابع جمل التحكم و معالجة الاستثناءات
إختر عنواناً لمشروعك يكون بسيطاً ويشد الانتباه!.
Handling Exceptions.
يمكن استدعاء الكود الوظيفي عند حدث معين أو عند استدعاء الكود الوظيفي .
نظام التشغيل Windows xp.
سياسات واستراتيجيات البحث
الفصل الثالث حصر و ترتيب البيانات.
Programming -2 برمجة -2 المحاضرة-1 Lecture-1.
Electronic Payment Systems أنظمة الدفع الالكتروني
C++ Programming L4+5 . Functions kkkkkkkkkkkkkk
Handling Exceptions.
أ.إسراء الطريقي , 306 عال , المحاضره الثالثه
3. Browsing the Web تصفح الانترنت
C++ Programming L11 . Classes(3) kkkkkkkkkkkkkk
Non Accidental Death- 24 April 2013
الوحدة الثانية: مكونات لغة الجافا
Database Management Systems 2
Handling Exceptions.
Database Programming Using Oracle 11g
Database Programming Using Oracle 11g
4 أسباب وراء فشل حبك في مرحلة المراهقة. كثير من الفتيات والشابات يقعوا في الحب في مرحلة المراهقة، وهي المرحلة التي تبدأ فيها الفتاة في التعرف على الطرف.
Presentation transcript:

معالجة الاستثناءات

الاستثناءات ماهي الاستثناءات؟ الاستثناءات عبارة عن الأخطاء التي ممكن أن تظهر خلال عملية تنفيذ وحدة (Block) وفي حال ظهورها تؤدي إلى وقف عملية التنفيذ.

الاستثناءات تنقسم الاستثناءات إلى 3 أقسام: 1- الأخطاء المعرفة مسبقا (Predefined Oracle Server errors) 2- الأخطاء الغير معرفة مسبقا (Non-Predefined Oracle server errors) 3- استثناءات معرفة بواسطة المستخدم (User Defined Exceptions) تتم معالجة الاستثناءات في الجزء الخاص بالاستثناءات في وحدة ال(Block)

هنا تتم معالجة الاستثناءات والإمساك بها DECLARE .... BEGIN …. EXCEPTION WHEN exception1 [OR exception2 . . .] THEN statement1; statement2; . . . [WHEN exception3 [OR exception4 . . .] THEN . . .] [WHEN OTHERS THEN هنا تتم معالجة الاستثناءات والإمساك بها

معالجة الاستثناءات 1- الأخطاء المعرفة مسبقا (Predefined Oracle Server errors): هي عبارة عن 20 خطأ لكل منها اسم ,ويتم الإمساك بها في جزء الاستثناءات داخل وحدة (Block) وذلك لمعالجتها عن طريق كتابة إجراء معين يتم عمله عند ظهور الخطأ. الجدول التالي يبين بعض منها: الاستثناء الوصف ZERO_DEVIDE القسمة على صفر VALUE_ERROR خطأ في عملية حسابية أو تحويل أو خطأ في الحجم TOO_MANY_ROWS جملة الاسترجاع (Select)أعادت أكثر من صف NO_DATA_FOUND جملة الاسترجاع (Select) لم تعد أي نتيجة NOT_LOGGED_ON محاولة إجراء عملية على قاعدة البيانات دون دخول.

معالجة الاستثناءات (الأخطاء المعرفة مسبقا) معالجة الاستثناءات (الأخطاء المعرفة مسبقا) مثال: DECLARE v_ename emp.ename%Type; v_empno emp.empno%Type := &p_eno; Begin SELECT ename INTO v_ename From emp WHERE empno = v_empno; DBMS_OUTPUT.PUT_LINE ('Employee Name is ' || v_ename ); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE (' Invalid Employee Number ' || v_empno); END;

معالجة الاستثناءات (الأخطاء المعرفة مسبقا) معالجة الاستثناءات (الأخطاء المعرفة مسبقا) مثال: DECLARE v_ename emp.ename%Type; v_job emp.job%Type := upper( '&p_ejob'); BEGIN SELECT ename INTO v_ename FROM emp WHERE job= v_job; DBMS_OUTPUT.PUT_LINE ('Employee Name is ' || v_ename ); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('There is no Employee has this '|| v_job); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE ('The Job '|| v_job || ' has more than one Employee ' ); END;

معالجة الاستثناءات 2- الأخطاء الغير معرفة مسبقا: عبارة عن أي خطأ من أخطاء أوركال غير تلك المعرفة مسبقا وتظهر ضمنيا ولكن يجب تعريفها في الجزء التعريفي (Declarative section). للتعامل مع هذا النوع من الاستثناءات: 1- نقوم بتعريف الاستثناء في الجزء التعريفي لل(Block): DECLARE ….. Exception_name EXCEPTION; 2- ربط الاستثناء مع الخطأ في الجزء التعريفي بعد تعريف الاستثناء باستخدام (PRAGMA_EXCEPTION_INIT): PRAGMA_EXCEPTION_INIT(Exception_name ,error_number); 3- معالجة الاستثناء في جزء الاستثناءات في وحدة ال(Block): يتم ذلك عن طريق كتابة : WHEN Exception_name THEN كتابة الجمل الناسبة للمعالجة هذا النوع من الاستثناءات غالبا يعالج بواسطة WHEN OTHERS لكن إذا لم تتم معالجته بهذه الطريقة فإننا نحتاج إلى معالجته كما في الأعلى (عن طريق تعريفه وربطه مع الخطأ ثم معالجته).

معالجة الاستثناءات (الأخطاء الغير معرفة مسبقا) معالجة الاستثناءات (الأخطاء الغير معرفة مسبقا)

معالجة الاستثناءات (الأخطاء الغير معرفة مسبقا) معالجة الاستثناءات (الأخطاء الغير معرفة مسبقا) DECLARE -مثال: e_emps_remaining EXCEPTION; تعريف الاستثناء PRAGMA EXCEPTION_INIT ( e_emps_remaining , -2292); ربط الاستثناء مع الخطأ رقم 2292- v_deptno dept.deptno%TYPE := &p_deptno; BEGIN DELETE FROM dept WHERE deptno = v_deptno; COMMIT; EXCEPTION WHEN e_emps_remaining THEN DBMS_OUTPUT.PUT_LINE ('Cannot remove dept ‘معالجة الاستثناء ||TO_CHAR(v_deptno) || '. Employees exist. '); END;

معالجة الاستثناءات 3- الاستثناءات المعرفة من قبل المستخدم: هي عبارة عن أي حدث يعتبره المستخدم خطأ يوجب وقف تنفيذ ال(Block),وعلى المستخدم تعريفه في جزء التعريفات وإظهاره باستخدام (RAISE). للتعامل مع هذا النوع من الاستثناءات: 1- نقوم بتعريف الاستثناء في الجزء التعريفي لل(Block): DECLARE ….. Exception_name EXCEPTION; 2- إظهار الاستثناء في الجزء التنفيذي من ال(Block) نتيجة أي حدث يعتبره المستخدم خطأ عن طريق استخدام (RAISE) Begin …. RAISE Exception_name ; 3- معالجة الاستثناء في جزء الاستثناءات في وحدة ال(Block): يتم ذلك عن طريق كتابة : WHEN Exception_name THEN كتابة الجمل الناسبة للمعالجة

معالجة الاستثناءات (الاستثناءات المعرفة من قبل المستخدم) معالجة الاستثناءات (الاستثناءات المعرفة من قبل المستخدم) في جزء التعريفات في الجزء التنفيذي في جزء الاستثناءات

معالجة الاستثناءات (الاستثناءات المعرفة من قبل المستخدم) معالجة الاستثناءات (الاستثناءات المعرفة من قبل المستخدم) DECLARE -مثال: e_invalid_ product EXCEPTION; تعريف الاستثناء BEGIN UPDATE product SET descrip = '&product_description' WHERE prodid = &product_number; IF SQL%NOTFOUND THEN RAISE e_invalid_product; إظهار الاستثناء نتيجة لعدم إتمام عملية التعديل END IF; COMMIT; EXCEPTION WHEN e_invalid_product THEN معالجة الاستثناء DBMS_OUTPUT.PUT_LINE('Invalid product number.'); END;

استثناء معرف من قبل المستخدم معالجة الاستثناءات استخدام SQLCODE وSQLERRM : SQLCODE و SQLERRMعبارة عن دوال يمكن استخدامها في معالجة الاستثناءات. SQLCODE : دالة تعيد رقم الخطأ الذي حدث. SQLERRM : دالة تعيد رسالة وصف للخطأ الذي حدث. SQLCODE الوصف لم يظهر أي استثناء 1 استثناء معرف من قبل المستخدم 100+ NO_DATA_FOUND رقم سالب ORECALE أي خطأ من أخطاء

النتيجة من تنفيذ الوحدة(Block) معالجة الاستثناءات DECLARE v_deptno NUMBER := 500; v_name VARCHAR2 (20) := 'Testing'; e_invalid_dept EXCEPTION; BEGIN UPDATE departments SET department_name = v_name WHERE department_id = v_deptno; IF SQL%NOTFOUND THEN RAISE e_invalid_dept; END IF; ROLLBACK; EXCEPTION WHEN e_invalid_dept THEN DBMS_OUTPUT.PUT_LINE ('No such department'); DBMS_OUTPUT.PUT_LINE (SQLERRM); DBMS_OUTPUT.PUT_LINE (SQLCODE); END; / PL/SQL procedure successfully completed. The command succeeded النتيجة من تنفيذ الوحدة(Block) No such department User-Defined Exception 1

معالجة الاستثناءات ماذا يحدث إذا لم يتم معالجة الاستثناء؟ ظهور الاستثناء يؤدي إلى توقف الوحدة وإذا لم تتم معالجته فإنه سينتقل إلى المكان الذي تمت منه عملية استدعاء الوحدة ,وإذا لم تتم المعالجة سينتقل للبيئة التي استدعته وهكذا ... حتى يصل أول مكان تمت منه عملية التنفيذ.

مثال DECLARE . . . e_no_rows EXCEPTION; e_integrity EXCEPTION; PRAGMA EXCEPTION_INIT (e_integrity, -2292); BEGIN FOR c_record IN emp_cursor LOOP SELECT ... UPDATE ... IF SQL%NOTFOUND THEN RAISE e_no_rows; END IF; EXCEPTION WHEN e_integrity THEN ... WHEN e_no_rows THEN ... END; END LOOP; WHEN NO_DATA_FOUND THEN . . . WHEN TOO_MANY_ROWS THEN . . . إذا لم تتم معالجة الاستثناء في هذه الوحدة فإنه سينتقل إلى الوحدة الذي جاء منها وهي الوحدة الرئيسية في هذه الحالة إذا لم تتم معالجة الاستثناء في هذه الوحدة فإنه سينتقل إلى الوحدة الذي جاء منها وهيSQL*Plus البيئة الخارجية في هذه الحالة

الخلاصة ماهي الاستثناءات أنواع الاستثناءات الثلاثة كيفية معالجة كل نوع من الاستثناءات