निम्न कोड में, पहले पुनरावृत्ति पर मुझे अपवाद मिलता है, और दूसरी तरफ मुझे कोई त्रुटि संदेश मुद्रित होने के साथ सेगमेंटेशन गलती मिलती है। ऐसा लगता है कि अपवाद पकड़ा नहीं गया है:मुझे अपवाद के बजाय एक सेगमेंटेशन गलती मिली है
int i = 0;
while(i++ < 10)
{
try {
cout << "Iteration: " << i << endl;
// Code...
cout << "OK" << endl;
}
catch(...)
{
cerr << "Error message" << endl;
continue;
}
}
Output:
Iteration 1
Error message
Iteration 2
Segmentation fault
क्या यह सामान्य है, या वास्तव में कुछ गलत चल रहा है?
यदि यह प्रासंगिक होना चाहिए, तो उस कोड ब्लॉक में मैं एक MySQL कनेक्शन रीसेट करता हूं, और अपवाद उत्पन्न होता है जब मैं जांचता हूं कि कनेक्शन बंद है या नहीं।
धन्यवाद।
प्लेटफार्म:
लिनक्स - OpenSuse 11.4
सी ++ - जीसीसी 4.5.1
इंटेल जिऑन
विभाजन दोष हैं। 'try-catch' द्वारा पकड़ा नहीं गया है। इसके बजाय आपको इसे पकड़ने के लिए डीबगर का उपयोग करना चाहिए। –
मुझे पूरा यकीन है कि यह आपके '// कोड ...' में होना चाहिए। आपके द्वारा पोस्ट की गई पोस्ट में सेगफॉल्ट स्पॉट्स को नहीं खोज सकता। .. – kratenko
मैं लिखने के द्वारा अपने आउटपुट को डुप्लिकेट करने में कामयाब रहा हूं 'अगर (i == 1) 0 फेंक दें; अन्यथा i = * (int *) 0;' लेकिन यह नहीं है कि आपका '// कोड' क्या है, है ना? –