मानक के पास किसी अपवाद के बारे में कुछ कहना है जो संदर्भ द्वारा पकड़ा गया है और इसे संशोधित करने के प्रयासों के साथ क्या होता है?यदि आप संदर्भ द्वारा अपवाद पकड़ते हैं, तो क्या आप इसे संशोधित कर सकते हैं और पुनर्स्थापित कर सकते हैं?
निम्नलिखित कोड पर विचार करें:
class my_exception: public std::logic_error
{
public:
std::vector<std::string> callstack;
};
void MyFunc()
{
try
{
SomethingThatThrows();
}
catch (my_exception & e)
{
e.callstack.push_back("MyFunc");
throw;
}
}
यह एक काल्पनिक उदाहरण है, मैं वास्तव में कुछ इस तरह नहीं प्रयास कर रहा हूँ। मैं सिर्फ उत्सुक था कि क्या होगा, दूसरे धागे में सुझाव के आधार पर अपवादों को कॉन्स संदर्भ द्वारा पकड़ा जाना चाहिए।
बढ़ावा :: अपवाद इस के लिए कुछ साफ टूल होते हैं। –
push_back फेंक सकता है। स्ट्रिंग के कन्स्ट्रक्टर की प्रतिलिपि फेंक सकते हैं। आज मैं एक std :: सरणी अपवाद के अंदर what_msg पसंद करेंगे। ताकि आप वर्चुअल को आसानी से कार्यान्वित कर सकें। –
Muxecoid