सी++ अपवाद
सी++ अपवाद
सी ++ कोड निष्पादित करते समय, विभिन्न त्रुटियां हो सकती हैं: प्रोग्रामर द्वारा की गई कोडिंग त्रुटियां, गलत इनपुट के कारण त्रुटियां, या अन्य अप्रत्याशित चीजें।
जब कोई त्रुटि होती है, तो C++ सामान्य रूप से रुक जाएगा और एक त्रुटि संदेश उत्पन्न करेगा। इसके लिए तकनीकी शब्द है: सी ++ एक अपवाद फेंक देगा (एक त्रुटि फेंक)।
सी ++ कोशिश करो और पकड़ो
C++ में एक्सेप्शन हैंडलिंग में तीन कीवर्ड होते हैं: try
, throw
और catch
:
यह try
कथन आपको कोड के एक ब्लॉक को परिभाषित करने की अनुमति देता है जिसे निष्पादित करते समय त्रुटियों के लिए परीक्षण किया जाना है।
समस्या का throw
पता चलने पर कीवर्ड एक अपवाद फेंकता है, जो हमें एक कस्टम त्रुटि बनाने देता है।
catch
यदि प्रयास ब्लॉक में कोई त्रुटि होती है, तो कथन आपको निष्पादित किए जाने वाले कोड के ब्लॉक को परिभाषित करने की अनुमति देता है ।
और कीवर्ड जोड़े में आते हैं try
:catch
उदाहरण
try {
// Block of code to try
throw exception;
// Throw an exception when a problem arise
}
catch () {
// Block of code to handle errors
}
निम्नलिखित उदाहरण पर विचार करें:
उदाहरण
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw (age);
}
}
catch (int
myNum) {
cout << "Access denied - You must be at least 18 years
old.\n";
cout << "Age is: " << myNum;
}
उदाहरण समझाया गया
हम try
कुछ कोड का परीक्षण करने के लिए ब्लॉक का उपयोग करते हैं: यदि age
चर से कम है 18
, तो हम एक अपवाद करेंगे , और इसे हमारे ब्लॉक throw
में संभाल लेंगे ।catch
ब्लॉक में catch
, हम त्रुटि पकड़ते हैं और इसके बारे में कुछ करते हैं। catch
कथन एक पैरामीटर लेता है : हमारे उदाहरण में हम एक int
चर ( ) का उपयोग करते हैं (क्योंकि हम ब्लॉक ( ) में प्रकार myNum
का एक अपवाद फेंक रहे हैं ), के मान को आउटपुट करने के लिए ।int
try
age
age
यदि कोई त्रुटि नहीं होती है (उदाहरण के लिए if age
is के 20
बजाय 15
, जिसका अर्थ है कि यह 18 से अधिक होगा), catch
ब्लॉक को छोड़ दिया जाता है:
उदाहरण
int age = 20;
आप throw
किसी संदर्भ संख्या को आउटपुट करने के लिए कीवर्ड का उपयोग भी कर सकते हैं, जैसे कि व्यवस्थित उद्देश्यों के लिए कस्टम त्रुटि संख्या/कोड:
उदाहरण
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (int myNum) {
cout << "Access denied - You must be at least 18 years old.\n";
cout << "Error number: " << myNum;
}
किसी भी प्रकार के अपवादों को संभालें (...)
यदि आप ब्लॉक में उपयोग किए गए throw
प्रकार को नहीं जानते हैं try
, तो आप ब्लॉक के अंदर "तीन बिंदु" सिंटैक्स ( ...
) का उपयोग कर सकते हैं catch
, जो किसी भी प्रकार के अपवाद को संभालेगा:
उदाहरण
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (...) {
cout << "Access denied - You must be at least 18 years
old.\n";
}