में कुछ कोड लिखा गया है, यदि मैंने दिया गया उपयोगकर्ता इनपुट अमान्य है तो मैंने अपवाद का सामना किया है, इसलिए मैंने इसे एक कोशिश/पकड़ ब्लॉक में रखा है, फिर भी यह एक अपवाद फेंक दिया है । कोड स्वयं काफी लंबा है इसलिए यहां कोड का सरलीकृत संस्करण है जो अपवाद का भी सामना करता है। अपवाद स्वयं स्पष्ट है, स्थिति "3" मौजूद नहीं है इसलिए स्वाभाविक रूप से यह एक अपवाद फेंक देगा, लेकिन यह एक कोशिश/पकड़ ब्लॉक के अंदर है इसलिए इसे पकड़ा जाना चाहिए, लेकिन ऐसा नहीं है।मुझे एक अपवाद मिल रहा है भले ही कोड एक कोशिश/पकड़ ब्लॉक
int main() {
try
{
vector<string> test = vector<string>{ "a","b","c" };
string value = test[3];
}
catch (...)
{
}
}
इस कोड को चलाने से केवल निम्नलिखित अपवाद में परिणाम होता है चाहे वह कोशिश/पकड़ ब्लॉक में हो या नहीं।
मैं भी अपवाद (const out_of_range&e
) को निर्दिष्ट करने की कोशिश की लेकिन है कि या तो मदद नहीं की। यह सिर्फ सटीक एक ही अपवाद का कारण बन गया।
int main() {
try
{
vector<string> test = vector<string>{ "a","b","c" };
string value = test[3];
}
catch (const out_of_range&e)
{
}
}
मैं दृश्य स्टूडियो का उपयोग कर रहा है, इस आईडीई या संकलक इसे इस्तेमाल करता है के साथ एक समस्या हो सकता है?
एलिमेंट 3 आपके वेक्टर का सदस्य नहीं है। इसके बजाय 2 का प्रयोग करें। – Raindrop7
* अपवाद * ओम कंप्यूटर सिस्टम के विभिन्न प्रकार हैं। आप केवल उन लोगों को पकड़ सकते हैं जिन्हें सी ++ से फेंक दिया जाता है, न कि सॉफ़्टवेयर, ऑपरेटिंग सिस्टम या हार्डवेयर त्रुटियों के कारण होते हैं। एक क्रैश जिसकी आपको आवश्यकता है [अपने कार्यक्रमों को डीबग करना सीखें] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)। –
आपके * क्रैश * के पीछे कारण के कारण आपको अपनी [शुरुआती किताबें] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) पर वापस जाना चाहिए और उनकी समीक्षा करें । –