Named Programmer-Defined Exception

Named Programmer-Defined Exception

توضیحات

گاهی نیاز است که برنامه‌نویس خود exception را تعریف کند که در پکیج استاندارد وجود ندارد.

دستور

در ادامه استفاده از name programmer-defined exception را در تابع و پروسیجر بررسی می‌کنیم:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲۳۳۳۴۳۵۳۶۳۷۳۸۳۹۴۰۴۱ CREATE [OR REPLACE] PROCEDURE procedure_name   [ (parameter [,parameter]) ]IS   [declaration_section]    exception_name EXCEPTION; BEGIN   executable_section   RAISE exception_name; EXCEPTION   WHEN exception_name THEN      [statements]    WHEN OTHERS THEN      [statements] END [procedure_name];CREATE [OR REPLACE] FUNCTION function_name   [ (parameter [,parameter]) ]   RETURN return_datatype IS | AS   [declaration_section]    exception_name EXCEPTION; BEGIN   executable_section    RAISE exception_name; EXCEPTION   WHEN exception_name THEN      [statements]    WHEN OTHERS THEN      [statements] END [function_name];

.


مثال

در مثال زیر پروسیجری که از یک named programmer-defined exception استفاده کرده است را مشاهده می‌کنیم:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲ CREATE OR REPLACE PROCEDURE add_new_order   (order_id_in IN NUMBER, sales_in IN NUMBER)IS   no_sales EXCEPTION; BEGIN   IF sales_in = ۰ THEN      RAISE no_sales;    ELSE      INSERT INTO orders (order_id, total_sales )      VALUES ( order_id_in, sales_in );   END IF; EXCEPTION   WHEN no_sales THEN      raise_application_error (-۲۰۰۰۱,\'You must have sales in order to submit the order.\');    WHEN OTHERS THEN      raise_application_error (-۲۰۰۰۲,\'An error has occurred inserting an order.\'); END;

در این مثال یک named programmer-defined exception به نام no_sales
تعریف کرده‌ایم:

۱ no_sales EXCEPTION;

سپس شرط اجرایexception را گفته‌ایم :

۱۲ IF sales_in = ۰ THEN   RAISE no_sales;

اگر متغیر sales_in دارای مقدار صفر باشد به قسمت exception می‌رود.

نوشته‌های مشابه