हेल्लो दोस्तों! आज हम इस पोस्ट में Exception Handling in PL/SQL in Hindi (एक्सेप्शन हैंडलिंग क्या है?) के बारें में पढेंगे और इसके प्रकार तथा program को भी देखेंगे. इसे आप पूरा पढ़िए, आपको यह आसानी से समझ में आ जायेगा. तो चलिए शुरू करते हैं:-
टॉपिक
Exception Handling in PL/SQL in Hindi
PL/SQL में, Exception एक error होता है जो program के सामान्य flow को रोक देता है. यह program के execution के दौरान घटित होने वाला एक error होता है.
दूसरे शब्दों में कहें तो, “exception एक error होता है जो कि run-time में घटित होता है जिसके कारण program का execution नहीं हो पाता.”
इन errors को हम compile-time में पकड नहीं पाते और इसलिए हमें इन्हें run-time में handle करने की जरूरत होती है.
PL/SQL में exception block के द्वारा हम program में error को find और resolve कर सकते हैं.
Exception दो प्रकार के होते हैं:-
- User-Defined Exception
- System-Defined Exception
Exception Handling का syntax – इसका syntax नीचे दिया गया है. आप जितने चाहो उतने exceptions को handle कर सकते हो. Default exception को WHEN और THEN के द्वारा handle किया जाता है.
DECLARE
<declarations section>
BEGIN
<executable command(s)>
EXCEPTION
<exception handling goes here >
WHEN exception1 THEN
exception1-handling-statements
WHEN exception2 THEN
exception2-handling-statements
WHEN exception3 THEN
exception3-handling-statements
........
WHEN others THEN
exception3-handling-statements
END;
यहाँ ध्यान देने वाली बात यह है कि WHEN others THEN का प्रयोग केवल exception handling block के अंत में किया जाता है. इसके बाद किसी भी exception को handle नहीं किया जाएगा.
System Defined Exceptions in Hindi
ये एक्सेप्शन PL/SQL में पहले से ही define होते हैं और इन्हें तब execute किया जाता है जब database के किसी विशेष rule को violate (उल्लंघन) किया जाता है. इन्हें pre-defined exceptions भी कहा जाता है.
system defined exceptions के भी दो प्रकार होते हैं:-
- Named system exceptions.
- Unnamed system exceptions
Named system exceptions – सिस्टम के द्वारा इनका नाम पहले से ही define होता है जैसे कि – ACCESS_INTO_NULL, DUP_VAL_ON_INDEX, LOGIN_DENIED आदि.
Unnamed system exceptions – वे exceptions जिन्हें system के द्वारा कोई भी नाम नहीं दिया जाता उन्हें unnamed system exceptions कहते हैं. ये exceptions सामान्यतया घटित नहीं होते हैं. इनके दो parts होते हैं पहला code और दूसरा message. इस प्रकार के एक्सेप्शन को handle करने के लिए इनको Pragma EXCEPTION_INIT का प्रयोग करके नाम assign किया जाता है.
इसका syntax –
PRAGMA EXCEPTION_INIT(exception_name, -error_number);
User-defined Exceptions in Hindi
इस प्रकार के exceptions को user के द्वारा खुद create किया जाता है. यूजर अपनी आवश्यकता के अनुसार exceptions को create कर सकते हैं और उन्हें handle कर सकते हैं. User-define exception को सबसे पहले declare करना आवश्यक होता है और उसके बाद उन्हें raise किया जाता है. इन्हें RAISE स्टेटमेंट और DBMS_STANDARD.RAISE_APPLICATION_ERROR की प्रक्रिया के द्वारा raise किया जाता है.
इसको declare करने का syntax निम्नलिखित हैं:-
DECLARE
my-exception EXCEPTION;
Raising Exceptios – एक्सेप्शन को raise करना
जब भी कभी आंतरिक database error होता है तो database server के द्वारा exceptions को automatically (अपने-आप) raise कर दिया जाता है परन्तु exceptions को RAISE command के द्वारा भी raise किया जा सकता है.
एक exception को raise करने का syntax निम्नलिखित हैं:-
DECLARE
exception_name EXCEPTION;
BEGIN
IF condition THEN
RAISE exception_name;
END IF;
EXCEPTION
WHEN exception_name THEN
statement;
END;
Exception Handling का example
नीचे हमने STUDENT table को create किया है.
SELECT* FROM STUDENT;
ID | NAME | AGE | ADDRESS | ROLL No |
1 | Yugal | 26 | Delhi | 111111 |
2 | Kamal | 27 | Dehradun | 222222 |
3 | Pankaj | 22 | Nainital | 333333 |
4 | Vishal | 23 | Kanpur | 444444 |
5 | Deepak | 24 | Mumbai | 555555 |
6 | Vinay | 25 | Haridwar | 666666 |
इस Table का program –
DECLARE
s_id student.id%type := 9;
s_name student.name%type;
s_addr student.address%type;
BEGIN
SELECT name, address INTO s_name, s_addr
FROM student
WHERE id = s_id;
DBMS_OUTPUT.PUT_LINE ('Name: '|| s_name);
DBMS_OUTPUT.PUT_LINE ('Address: ' || s_addr);
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('No such student!');
WHEN others THEN
dbms_output.put_line('Error!');
END;
/
इसका आउटपुट –
No such student
PL/SQL procedure successfully completed.
ऊपर दिए गये program में student का नाम और address आउटपुट में आना चाहिए. परन्तु हमने यहाँ id 9 लिखा है और table में id 9 नहीं है इसलिए प्रोग्राम run-time exception – NO_DATA_FOUND raise करेगा.
References:- https://www.javatpoint.com/pl-sql-exception
निवेदन:- मुझे आशा है कि यह article आपको पसंद आया होगा. इसे अपने friends और classmates के साथ अवश्य share कीजिये. और आपके PL/SQL से सम्बन्धित कोई सवाल हो तो उसे नीचे comment करके बताइए.
अगर आपके कोई सुझाव हो तो उसे भी आप बता सकते हैं जिससे वेबसाइट को और भी बेहतर बनाया जा सकें. keep learning.. keep visiting…