पोर्टेबल तरीके से सभी अपवादों को पकड़ना संभव नहीं है। ऐसा इसलिए है क्योंकि कुछ अपवाद C ++ संदर्भ में अपवाद नहीं हैं। इसमें शून्य त्रुटियों और अन्य द्वारा विभाजन जैसी चीजें शामिल हैं। के बारे में हैक करना संभव है और इस प्रकार इन त्रुटियों के होने पर अपवादों को फेंकने की क्षमता मिलती है, लेकिन यह करना आसान नहीं है और निश्चित रूप से पोर्टेबल तरीके से सही होना आसान नहीं है।
यदि आप सभी एसटीएल अपवादों को पकड़ना चाहते हैं, तो आप कर सकते हैं
try { ... } catch( const std::exception &e) { ... }
जो आपको उपयोग करने की अनुमति देगा e.what()
, जो एक रिटर्न देगा const char*
, जो आपको अपवाद के बारे में अधिक बता सकता है। यह वह निर्माण है जो जावा निर्माण से मिलता-जुलता है, आपने इसके बारे में पूछा था।
यह आपकी मदद नहीं करेगा यदि कोई व्यक्ति एक अपवाद फेंकने के लिए पर्याप्त बेवकूफ है जो विरासत में नहीं आता है std::exception
।