जब हम किसी भी programming language में program बनाते है तो errors आना स्वाभाविक है। सभी programming languages में ये Errors दो प्रकार की होती है।
- Syntactical Errors
- Logical Errors
Syntactical Error:-
Logical Errors:-
Syntactical errors और logical errors ये दोनों ही तरह की Errors run time पर नहीं आती है और program के Execution को नहीं रोकती है।
Syntactical errors और logical errors के अलावा एक तीसरे तरीके की error भी होती है जो run time पर आती है और program के execution को रोक देती है। इस तरह की error को exception कहते है।
Exception ऐसी conditions होती है जिनका program से कोई connection नहीं होता। Exceptions user की गलती से या System की limitation से आती है। जैसे की यदि किसी Array की limit केवल 10 है और loop के द्वारा 11 values Array में store करने का प्रयास कर रहे है। ऐसी situation में program एक exception generate करेगा।
जब हम छोटे program बनाते है तो exceptions पर इतना ध्यान नहीं देते है क्योंकि उसका किसी पर कोई effect नहीं होता है। लेकिन जब हम real world software कोई बड़ा Software develop करते है तो ऐसी स्थिति में exceptions को handle करना अनिवार्य हो जाता है।
Exceptions को handle करने के लिए C++ हमे exception handling mechanism provide करती है। इस mechanism के द्वारा User कोई भी exception आने पर उसे handle कर सकता है और program के directly terminate होने के बजाय कोई दूसरा code execute करके program को terminate कर सकता है। उदाहरण के लिए यूजर program के terminate होने से पहले एक message show करवा सकता हैं।
C++ Exception Handling Keywords
Exceptions को handle करने के लिए C++ कुछ built in keywords provide करती है। इन keywords के माध्यम से exceptions को आसानी से detect और handle कर सकते है।
1. try:-
ये एक block होता है। इसमें program के उस code को लिखते है जिससे exception generate होने की सम्भावना है। उदाहरण के लिए program में कोई calculation का या कोई दूसरा logical code है जिससे यूजर को लगता है की exception generate हो सकती है तो ऐसे code को यूजर try block के अंदर लिखता है।
2. throw:-
ये keyword try block में Use किया जाता है। इस keyword के द्वारा try block से exception को throw किया जाता है। ये exception catch block को throw की जाती है जो की exception को handle करता है। इस block के द्वारा किसी Particular variable को catch block को pass भी कर सकते है। जिसे catch block exception को handle करने के लिए use कर सकता है।
3. catch:-
ये वो block होता है जँहा पर exception को handle कर सकते है। इस block के द्वारा exception आने पर कोई message भी show कर सकते है या फिर कोई दूसरा code भी execute करवा सकते है।
ये block हमेशा try block के just बाद में आता है। एक से ज्यादा exceptions को handle करने के लिए एक से अधिक catch block भी create कर सकते है।
Exception Handling Process
C++ में exception को handle करते समय एक process से गुजरना होता है। नीचे इस process को कुछ steps के द्वारा समझाया जा रहा है।
- step 1 :- सबसे पहले exception detect की जाती है।
- step 2 :- throw keyword के द्वारा exception throw की जाती है।
- step 3 :- catch block द्वारा exception catch की जाती है।
- step 4 :- catch block में exception को handle करते है।
Output:-
Divide by 0 exception occurred!!
Explain Example:-
ऊपर दिए गए उदाहरण में जब 5 को 0(zero) से divide किया जाता है तो exception generate होती है। फिर इस exception को catch block में handle किया गया है।
Exception Handling in C++
1) यह Example C++ में Exception handling दिखाने के लिए एक simple example है। प्रोग्राम का आउटपुट try/catch blocks के execution के flow को explains कर रहा हैं।
Output:-
Before try
Inside try
Exception Caught
After catch (Will be executed)
2) catch(…) एक special catch block है जिसे 'catch all' कहा जाता है जिसका उपयोग सभी प्रकार के exceptions को catch के लिए किया जा सकता है। उदाहरण के लिए, निम्नलिखित प्रोग्राम में, एक int को exception के रूप में throw किया जाता है, लेकिन int के लिए कोई catch block नहीं है, इसलिए catch(…) block को execute किया जाएगा।
Output:-
Default Exception
0 Comments