Fehlerbehandlungen ?



  • Hallo,

    ich habe bislang nie mit Fehlerbehandlungen gearbeitet.
    In dem nachfolgenden Code muß ich jedoch eine Behandlung
    einbauen, welche mein Programm vor dem "Absturz" hindert,
    wenn der angewählte Pfad zum öffnen der *.txt Datei nicht
    existiert(Pfad ist "fakepfad").

    Das Programm soll also ganz normal weiterlaufen, bzw. nach der
    MessageBox nicht abstürzen,sondern wieder zur Ausgangsposition zurück.

    Wie mache ich das ?

    CFile textfile;
    CString test;
    CString fehler;
    CString Pfad;
    Pfad ="Pfad nicht vorhanden";
    
    fehler ="Error";
    test ="123test";
    if (!textfile.Open("c:\\fakepfad\\test.txt", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite))
    { 
    MessageBox(fehler,Pfad); 
    // hier kommt der Fehler, Prog schmiert ab!
    
    } 
    
    textfile.SeekToEnd();
    textfile.Write("\r\n"+test,strlen(test)+2);
    textfile.Close();
    

    Gruß

    Snooper 🙂



  • mit try und catch



  • Der Fehler kommt nicht dort wo du es geschrieben hast. Wenn du einen Debug machst erkennst du, daß nach dem schließen der Message der Code weiter läuft und deine Fileoperation durchführen will.
    Da kein File öffen ist und du somit keinen Filehandle hast stürzt dein programm ab.

    if ()
    {
    // Messagebox
    }
    else
    {
    // Hier die Fileoperation wenn öffnen OK
    }
    
    Try catch ist auch eine Lösung. Aber nur wenn du vorher schon keinen Codefehler gemacht hast.
    

Anmelden zum Antworten