CFileException



  • Hallo,

    ich habe gerade ein Problem mit einer Exception. Da ich in C++ noch nie Exceptions benutzt habe kann es sein das es ein sehr dumme Frage ist, aber ich komme gerade nicht weiter:
    Ich habe ein Object vom Typ CStdioFile. Im Debugger sehe ich, dass mit Hilfe der Methode AfxThrowFileException eine CFileException Exception geworfen wird. Mit meinem Code fange ich diese Exception aber nicht.

    try {
    	logFile->Close();
    	delete logFile;
    } catch (CFileException* e) {
    	TRACE("ERROR ::: CFile Exception m_cause: %d\n", e->m_cause);
    	delete logFile;
    }
    

    Ist mein try / catch Block falsch oder wieso bekomme ich nicht mit das eine Exception geworfen wurde?



  • ist ziemlich unwahrscheinlich das das Schließen der Datei ne Exception auslöst. mach doch den ganzen datei-code mal in den try/catch block



    1. ich habe alles in einem try / catch Block
    2. oben habe ich geschrieben das ich im Debugger genau sehe wo die Exception geworfen wird. Ich kann es dir aber auch genauer sagen: In der Methode void CStdioFile::Close() (Datei: filetxt.cpp Zeile: 350

    Also ist ziemlich warscheinlich das die Exception beim schliessen der Datei geworfen wird. 😉

    Gruß



  • ist deine festplatte voll?



  • Hallo,

    meine Festplatte ist nicht voll (20GB frei). Ich habe gerade nachgeschaut, du hast recht:
    e->m_cause == CFileException::diskFull

    Wieso die Exception kommt weiß ich auch noch nicht. Aber mir geht es eigentlich erst mal darum warum ich diese Exception nicht fange.
    Eins nach dem anderen 😉

    Gruß



  • versuch mal als nächsten Block ein catch(...)



  • Hallo,

    ich habe den grund für die Exception gefunden. Ich hatte mich mit einer Semaphore etwas vertan. Warum die Exception allerdings nicht gefangen wurde ist mir weiterhin ein Rätsel. Trotzdem danke für eure Hilfe.

    Gruß


Anmelden zum Antworten