- Introduction to C++ exception handling in Hindi
- C++ exception handling keywords in Hindi
- C++ exception handling process in Hindi
Introduction to C++ Exception Handling
जब आप program बनाते है तो errors आना स्वाभाविक है। सभी programming languages में ये errors दो प्रकार की होती है।
ध्यान देने योग्य बात ये है की ये दोनों ही तरह की errors run time पर नहीं आती है और program के execution को नहीं रोकती है।
इन दोनों errors के अलावा एक तीसरे तरीके की error भी होती है जो run time पर आती है और program के execution को रोक देती है। इस तरह की error को exception कहते है।
Exception ऐसी conditions होती है जिनका program से कोई connection नहीं होता है। Exceptions user की गलती से या system की limitation से आती है।
जैसे की यदि array में केवल 10 values डाली जा सकती है और आप loop के द्वारा 11 values डालने का प्रयास कर रहे है। ऐसी situation में program एक exception generate करेगा।
जब आप छोटे छोटे program बनाते है तो exceptions पर इतना ध्यान नहीं देते है क्योंकि उसका किसी पर कोई effect नहीं होता है। लेकिन जब आप real world software develop करते है तो ऐसी exceptions को handle करना अनिवार्य हो जाता है।
Exceptions को handle करने के लिए C++ आपको exception handling mechanism provide करती है। इस mechanism के द्वारा आप कोई भी 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 कर सकते है।
try
ये एक block होता है। इसमें आप program के उस code को लिखते है जिससे exception generate होने की सम्भावना है। उदाहरण के लिए आपके program में कोई calculation का या कोई दूसरा logical code है जिससे आपको लगता है की exception generate हो सकती है तो ऐसे code को आप try block के अंदर लिखते है।
throw
ये keyword try block में यूज़ किया जाता है। इस keyword के द्वारा try block से exception को throw किया जाता है। ये exception catch block को throw की जाती है जो की exception को handle करता है।
इस block के द्वारा आप किसी particular variable को catch block को pass भी कर सकते है। जिसे catch block exception को handle करने के लिए यूज़ कर सकता है।
इस block के द्वारा आप किसी particular variable को catch block को pass भी कर सकते है। जिसे catch block exception को handle करने के लिए यूज़ कर सकता है।
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 के द्वारा समझाया जा रहा है।
- सबसे पहले exception detect की जाती है।
- इसके बाद throw keyword के द्वारा exception throw की जाती है।
- इसके बाद catch block द्वारा exception catch की जाती है।
- इसके बाद आप catch block में exception को handle करते है।
Example
आइये अब C++ में exception handling को एक उदाहरण के माध्यम से समझने का प्रयास करते है।
#include <iostream>
using namespace std; int main() { int num=5; int result; // Code that may generate exception try { result = num/0; throw 0; } // Handling exception catch(int e) { // Printing exception description cout<<"Divide by"<<e<<"exception occurred!!"; } return 0; } |
ऊपर दिए गए उदाहरण में जब 5 को zero से divide किया जाता है तो exception generate होती है। फिर इस exception को catch block में handle किया गया है। ये program निचे दिया गया output generate करता है।
C++ Built in Exceptions
C++ आपको कुछ built in exceptions provide करती है जिन्हें आप throw और catch कर सकते है। ये exceptions C++ में classes के माध्यम से represent की गयी है। सभी exception classes की base class exception होती है। Exception class को directly 9 classes inherit करती है। इनकी list निचे दी जा रही है।
इनमें से logic_error class को 5 classes inherit करती है।
runtime_error class को भी 4 classes inherit करती है।
- bad_alloc
- bad_cast
- bad_exception
- bad_function_call
- bad_typeid
- bad_weak_ptr
- ios_base::failure
- logic_error
- runtime_error
इनमें से logic_error class को 5 classes inherit करती है।
- domain_error
- future_error
- invalid_argument
- length_error
- out_of_range
runtime_error class को भी 4 classes inherit करती है।
- overflow_error
- range_error
- system_error
- underflow_error
0 Comments