Bekomme Exception nicht abgefangen



  • Hi Leute!

    Ich suche jetzt schon seit geraumer Zeit nach dem Grund für eine Exception die ich in meinem Projekt immer bekomme.
    Ich habe eine CRecordset Klasse und bewege mich durch eine Datenbanktabelle. Wenn ich über das Dateiende geh und dann wieder zurückauf einen gültigen Datensatz und das ganze dann erneut mache, kriege ich folgende Exception in der Debugger-Ausgabe:

    Nicht abgefangene Ausnahme in BaseDemo.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.

    Das Programm verhält sich dabei übrigens ganz normal. Also es stürzt nicht ab oder sonst irgendwas. Trotzdem möchte ich gern wissen, woher diese Exception kommt. Ich kenne die genaue Funktion die sie verursacht aber meine TRY/CATCH Konstruktion tut als wäre nichts gewesen 😕
    Was mach ich falsch ?
    Hier ist der Source, der den Fehler verursacht:

    TRY
    	{
    		m_pDataObject->DBSkipRecord(1); // Hier tritt die Exception auf
    		if (m_pDataObject->pCurrentRowSet->IsEOF())
    			m_pDataObject->pCurrentRowSet->MoveLast();
    	}
    	CATCH_ALL(e) 
    	{ 
    		int x = 1; // Nur für Breakpoint - wird aber nie angesprungen :(
    	} 
    	END_CATCH_ALL;
    


  • wahrscheinlich wird die exception schon intern abgefangen und nur noch ne info ausgegeben



  • Die habe ich auch schon bis zum Umfallen gesucht. 🙄
    Ich habe die Suche eingestellt.

    Den Beitrag dazu finde ich leider nicht mehr, aber bei VC6 gibt es im Menü Debug den Befehl "Ausnahmen...". (Dazu musst du mit F5 starten, sonst ist das Menü nicht da.)
    In dem Dialog dazu ist in der Liste ganz unten "Microsoft C++ Exception" da musst du nur noch sagen "Immer anhalten".

    Viel Erfolg! 🙂



  • Danke für den Tipp, jetzt weiss ich zumindest das ich nichts dagegen tun kann 😃

    (Die letzten Auszüge der Aufrufliste)

    KERNEL32! 77e7e592()
    ODBCCR32! 1f84e8df()
    ODBCCR32! 1f848183()
    ODBCCR32! 1f84b0db()
    ODBC32! 1f7d77cb()
    CRecordset::FetchData(unsigned short 6, long -1, unsigned long * 0x002f5320) 
    (...)
    line 3049 + 35 bytes
    

    Der Fehler tritt bei "ODBC32" zum ersten mal auf. Das ist Mickeysofts Kram 🙄


Anmelden zum Antworten