I'm trying to understand why throwing an exception from a destructor results in a program crash. As I found many examples of two object which throw multiple exception and compiler can't handle multiple exception but in my case I only have a single exception thrown from the destructor. Why is my program still crashing?
class MyClass {
private:
    string name;
public:
    MyClass (string s) :name(s) {
        cout << "constructor " << name << endl;
    }
    ~MyClass() {
        cout << "Destroying " << name << endl;
        throw "invalid";
    }
};
int main( ) 
{ 
    try {
        MyClass mainObj("M");
    }
    catch (const char *e) {
        cout << "exception: " << e << endl;
        cout << "Mission impossible!\n";
    }   
    catch (...) {
        cout << "exception: " <<  endl;
    }
    return 0; 
}
 
     
     
    