komische Fehlermeldung
-
Hallo,
ich habe eine Datenbankanwendung in VC++ geschrieben, die auf eine MS_ACCESS-Datenbank aufsetzt.(CRecordset,CDatabase,CDBException,etc.)Manchmal, ich kann noch nicht einmal genau sagen wann, erscheint eine FehlerMessageBox mit dem Text: "eine unbenannte Datei konnte nicht geöffnet werden." (buchstäblich wiedergegeben).
Kann mir jemand sagen, was das bedeuten soll, und wie ich die Stelle im Quellcode finde, die dafür verantwortlich ist?Danke
Jens
-
Schau mal in die Debugausgabe und prüfe ob eine Exception irgendwo geworfen wird.
-
Ich habe die CDBExceptions aufgefangen und schreibe die Fehlermeldeung in eine Datei:
catch(CDBException* e) { char Error[1024]; e->GetErrorMessage(Error,1024); CString ErrMsg; ErrMsg.Format("SendLfdNr: %s\n",Error); m_pFile->SeekToEnd(); m_pFile->Write(ErrMsg,ErrMsg.GetLength()); e->Delete(); success=false; }Kann es sein, dass das m_pFile->SeekToEnd() etc verantwortlich ist?
Und dann noch eine Frage zum Debugger: Ich könnte Haltepunkte in jede Exception setzen. Ich weiß aber nicht, wie ich irgendeine Exception bemerken soll.Danke
Jens
-
1. Setze einen Breakpoint auf AfxThrowDBException! Dann bekommst Du die Exception mit.
2. Innerhalb des Exception Handles darf natürlich keine neue Exception geworfen werden.
-
Danke,
ich denke, es war eine CFileException in einer CDBException.
Hab's jetzt aber gefunden. Musste zwar ca. 70 Breakpoints setzen, hat sich aber gelohnt.Jens
-
In der MFC werden die Exception aus Funktionen heraus geworfen. Man muss also nur die entsprechenden Breakpoints auf die Funktionen setzen. Erwischt man die.
Oder Du lässt den Debugger alle Exceptions behandeln. Dann bekommst Du auch sofort einen Debug-Breakpoint.