Database
 sql >> база данни >  >> RDS >> Database

Как да декларирате изключение, дефинирано от потребител, използвайки PRAGMA EXCEPTION_INIT

Както беше обсъдено във въвеждането на обработката на изключения PL/SQL, има три начина за деклариране на изключения, дефинирани от потребителя. Сред тези три начина вече научихме първите два начина, които декларират потребителско дефинирано изключение с помощта на

  1. Изявление за повишаване и
  2. Процедура Raise_Application_Error

Единственият начин, който остава да се обсъди сега, е да се декларират изключения, дефинирани от потребителя, като се използва функцията PRAGMA EXCEPTION_INIT в Oracle Database.

По този начин в този урок за PL/SQL ще научим как да декларираме изключение, дефинирано от потребителя за PL/SQL в Oracle Database, като използваме функцията PRAGMA EXCEPTION_INIT.

Какво е PRAGMA EXCEPTION_INIT?

Pragma Exception_Init е изявление от две части, където първата част е съставена от ключова дума PRAGMA, а втората част е извикването Exception_Init.

Ключова дума на PRAGMA

Прагмата е директива на компилатора, която показва, че изявленията, последвани от ключова дума PRAGMA, са оператор на директивата на компилатора, което означава, че операторът ще бъде обработен по време на компилиране, а не по време на изпълнение.

PRAGMA Exception_Init

Exception_init ви помага да свържете име на изключение с номер на грешка в Oracle. С други думи можем да кажем, че с помощта на Exception_Init можете да наименувате изключението.

Защо да посочите изключението?

Да, има начин за деклариране на потребителско дефинирано изключение без името и това е чрез използване на процедура Raise_Exception_Error. Това наистина е прост и лесен начин, но както научихме в последния урок, че за обработка на изключения без име използваме ДРУГИ манипулатор на изключения.

Сега помислете, че във вашия проект имате множество изключения и това също без име. За да обработвате всички тези изключения, имате един манипулатор на изключения с име ДРУГИ. В този случай при възникване на условие за изключение компилаторът ще покаже стека с грешки, произведен от ДРУГИЯ манипулатор.

Можете ли да си представите колко трудно ще бъде да проследите тази част от вашия проект, която причинява грешката. За да проследите тази част, трябва да преминете през всеки ред от вашия код. Това ще бъде просто загуба на време.

Можете да спестите всички тези усилия, които губите време, само като наименувате изключението, по този начин можете да проектирате манипулатор на изключение, специфичен за името на вашето изключение, който ще бъде лесно проследим. Това е предимството на именуването на изключението.

Синтаксис на Pragma Exception_Init.

PRAGMA EXCEPTION_INIT (exception_name, error_number);

Пример:Декларирайте дефинирано от потребител изключение с помощта на Pragma Exception_Init

DECLARE
  ex_age    EXCEPTION;
  age       NUMBER    := 17;
  PRAGMA EXCEPTION_INIT(ex_age, -20008);
BEGIN
  IF age<18 THEN
    RAISE_APPLICATION_ERROR(-20008, 'You should be 18 or above for the drinks!');
  END IF;
  
  DBMS_OUTPUT.PUT_LINE('Sure! What would you like to have?');
  
  EXCEPTION WHEN ex_age THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);   
END;
/

Обясних подробно този пример в моя видеоурок в моя канал в YouTube. Ще ви помоля да разгледате урока там.

Защо да използвате PRAGMA EXCEPTION_INIT с RAISE_APPLICATION_ERROR?

Въпреки че не е задължително да се използва PRAGMA EXCEPTION_INIT с процедура RAISE_APPLICATION_ERROR, това е по-скоро лично предпочитание, отколкото правило за програмиране. Ако искате да отпечатате съобщение за грешка с номер на грешка като стандартния начин на Oracle за показване на грешка, тогава най-добрата практика е да използвате PRAGMA EXCEPTION_INIT с процедура RAISE_APPLICATION_ERROR.

Но ако просто искате да отпечатате съобщението за грешка, а не номера на грешката, тогава можете да използвате PRAGMAEXCEPTION_INIT с оператор RAISE.

Това е урокът за PL/SQL как да декларирате изключение, дефинирано от потребителя в Oracle Database, използвайки PRAGMA EXCEPTION_INIT. Надявам се, че сте научили нещо ново. Ако намирате този урок за информативен, споделете го във вашите социални медии. Благодаря и приятен ден!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Визуализирайте повратната точка с Plan Explorer

  2. Печелете пари с неизползвани неща:модел на данни за икономика за споделяне

  3. Модели на бази данни за електронна търговия, част 1:Бюлетинът

  4. Какво може да каже планът на заявката?

  5. Забавление с компресия (columnstore) на много голяма маса – част 2