Exception wird nicht ausgelöst



  • Hallo an alle,
    ich habe hier ein kleines Code-Fragment. Aus einer Memberfunktion einer Klasse.
    Die Variable "Pfad" ist eine Klassenvariable.
    Ich versuche hier unmengen an Speicher zu allokieren, um die Exception auszulösen.
    Jedoch wird beim Debuggen keine Exception ausgelöst.

    try{
            Pfad=new char[1024*1024*1024*1024*1024*1024*1024];
    }
    catch(...){
    //catch(const bad_alloc &){
            MessageDlg(Error1+"00033",mtError,TMsgDlgButtons() << mbOK ,0);
            return;
    }
    

    Ich hoffe mir kann jemand weiterhelfen, es ist erst das zweite mal, das ich versuche mit try und catch zu arbeiten.

    Gruß
    Alex



  • Hi,

    definiere den Catch-Zweig mal so:

    catch (std::bad_alloc)
    {
       eineFehlerFunktion;
    }
    

    Nighthero



  • Danke, aber bringt auch nichts,
    zudem bekomme ich normalerwise eine "Benachrichtigung über Debug Exception", wenn eine Exception ausgelöst wird, unabhängig davon ob sie nun gefangen wird oder nicht. Doch nicht ein mal die erschint in diesem Fall.

    Für weitere Vorschläge wäre ich dankbar!!
    Ich benutze übrigens C++ Builder Version 6.0.

    Gruß Alex



  • Hi, sieh dir mal an, was der Compiler aus 1024*1024*1024*1024*1024*1024*1024 macht, nämlich 0 (Ziehe den Ausdruck ins Fenster "Liste überwachter Ausdrücke"). Somit gibt es auch keine Exception. Beschränke dich mal auf 1024*1024*1024, dann klappt es auch mit der Exception.

    Nighthero



  • Danke Nighthero :),

    den Fehler hätte ich wohl nie gefunden. Ich habe mit (1024*1024*1024*1024) angefangen, und als das nicht geklappt hat immer mehr gesteigert.
    Die "Liste überwachter Ausdrücke" habe ich bis dato noch nicht genutzt.
    Aber ma lernt ja nie aus.
    Die Exception wird jetzt auf jedenfall ausgelöst. 👍

    Gruß Alex


Log in to reply