2017-02-25 2 views
0

Angenommen, dieses Stück von C++ Code:Exception in Ausnahme Konstruktor

class myexception1 
{ 
public: 
    myexception1() 
    {}; 
}; 

class myexception2 
{ 
public: 
    myexception2() 
    { 
     throw myexception1(); 
    }; 
}; 

void test() 
{ 
    try 
    { 
     throw myexception2(); 
    } 
    catch (...) 
    { 
    } 
}; 

Wenn ich die test Funktion ausführen, die Art der Ausnahme des catch-Block erhalten? Könnte dies zu einem Speicherleck führen, weil eine Ausnahme von einem Ausnahmekonstruktor ausgelöst wird?

Antwort

0

Die Ausnahme gefangen ist myexception1. Ob es ein Speicherleck gibt, hängt davon ab, was genau der Ausnahmekonstruktor tut - in diesem Fall wird es keinen geben.

+0

Danke für die Beantwortung. –

Verwandte Themen