Try- catch blöcke

Tutorials.at
Verfügbare Informationen zu "Try- catch blöcke"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: DrPhil_Guth - d.d.d.
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 9
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Try- catch blöcke
  • Letzte Antwort: vor 17 Jahren, 11 Monaten, 2 Tagen, 3 Stunden, 18 Minuten
  • Alle Beiträge und Antworten zu "Try- catch blöcke"

    Re: Try- catch blöcke

    DrPhil_Guth - 20.05.2006, 11:33

    Try- catch blöcke
    Hallo!

    Nun, ich habe mir jetzt ein Buch besorgt, und lerne gerade c++.
    Die sprache ist echt lustig! Man kann machen was man will, und man kann echt alles damit programmieren.

    Nur eine Sache ist mir nicht klar:

    1) Was sind try- catch blöcke

    2) wie werden sie verwendet

    3) und wofür genau sind sie

    In dem buch steht, dass try- catch blöcke verwendet werden, um Fehlermeldungen in einem Codeabschnitt zu erzeugen.
    Aber was für fehlermeldungen? Wenn ich weiß, dass fehler entstehen können, behebe ich sie doch, oder?

    Die Syntax sollte sowas wie das hier lauten:

    try
    {
    //code
    }
    catch (T1 X1) // T1 ist typ 1 eins, X1 ist irgendwas vom typ T1
    {
    //Behandlung der ausnahme vom Typ T1
    }
    catch (T2 X2) // T2 ist typ 2 eins, X2 ist irgendwas vom typ T2
    {
    //Behandlung der ausnahme vom Typ T2
    }
    catch(...)
    {
    // alle anderen ausnahmen
    }


    Irgendwo (ich glaube in der behandlung) kommt noch das wort throw() vor.


    ich hab irgendwie keinen plan, was das ist, wie das geht wozu und wie das verwendet wird.

    Könnte mir das bitte jemand erklären, evtl. mit einem Programmbeispiel?



    Re: Try- catch blöcke

    d.d.d. - 26.05.2006, 18:35


    Hi !!

    Ich lerne selber C++ weil ich C naja nicht so gut finde!!!

    1. Zu deinem Buch: Wenn alles so kompliziert erklärt ist schmeiß es weg und besorg dir ein anderes!!!!!!!!

    2. TRY und CATCH sind nichts anderes als eine "Programmabsicherung"!!!!!
    zu deutsch :suchen und abfangen!!!!! Ziel der Befehle ist es, das Programm im Falle eines Fehlers noch rechtzeitig herunterzufahren, und alle geöffneten Dateien RICHTIG zu schließen!!!

    ein C++ code beispiel:

    //Try Catch
    #include <iostream>

    using namespace std;

    // main-Funktion
    void main () // Du kannst auch int als Rückgabetyp schreibn is total egal
    {
    //Variablen
    int Test = 0;

    try
    {
    // Wir geben der Variable den Wert 5
    test = 5;

    // Prüfen mit Hilfe eines booleschen Operators !!
    if (Test < 3)
    throw "Variable veraltet, funktioniert nicht mehr!!!";

    if (Test >3)
    throw "Unbekanntes Format";
    } // try wird geschlossen

    // Der catch-block wird durch das Schlüssel wort throw aufgerufen,
    // und somit EINE SICHERES BEENDEN des PROGRAMMES
    // garantiert

    // Der Fehlerstring speichert die Ausgabe von throw und gibt sie
    // bei 'Fehler wird ausgegeben' aus
    catch (char *Fehlerstring)
    {
    // Fehler wird ausgegeben
    cout << "Ausnahme aufgetreten: " << Fehlerstring << endl;

    // Programm wird sauber beendet
    cout <<"Nach dieser Textausgabe beendet "<<endl;
    cout <<"dein programm automatisch"<< endl;
    }// catch wird geschlossen


    }


    Diese oben im try-block beschriebene Meldung bei ° throw "Unbekanntes Format"; ° ist die FEHLERMELDUNG die den CATCH-block übergeben wird!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


    Ich hoffe ich konnte dir hiemit weiter helfen!!!!!!!!
    :D



    Re: Try- catch blöcke

    DrPhil_Guth - 26.05.2006, 21:43


    Hi! Danke mann! Jetzt versteh ichs. Das hätt ich aus dem buch nie gecheckt...

    Aber eine Sache noch: wann genau ist es klug das einzusetzen? ich meine, wenn ich sehe dass ein fehler bevorstehen kann, dann behebe ich ihn doch gleich odeR?



    Re: Try- catch blöcke

    d.d.d. - 26.05.2006, 23:33


    Wenn du einen Level editor z.b. öffnest und er existiert in verschiedenen Versionen.Dieser Fall tritt dann auf wenn du eine neuere Version eines Level-Editors programmiert hast.

    Dann kann es ja zum Absturz führen!!!!


    Und das wird durch diese Befehle eben verhindert!!!



    Re: Try- catch blöcke

    DrPhil_Guth - 27.05.2006, 10:35


    Aha. Das ist natürlich logisch, und insofern dann nützlich.

    Ich hab noch ne frage: kann man in einem throw befehl auch mehrere typen verwenden? z.B. ich will dass er bei einem fehler einen Fehlercode ausgibt und gleichzeitig eine Text- Fehlermeldung



    Re: Try- catch blöcke

    d.d.d. - 27.05.2006, 13:23


    Die Text-Fehlermeldung wird ja im Catch ausgegeben durch den Fehlerstring von dem
    Schlüsselwort throw!!

    Aber was meinst du mit Fehlercode?
    Oda meinst du mit Fehlercode die Begründung zu deinem Fehler?



    Re: Try- catch blöcke

    DrPhil_Guth - 27.05.2006, 13:30


    eigentlich wollte ich nur wissen ob man mit einem Thro mehrere Datentypen ausgeben kann, oder überhaupt in einem catch block mehrere Strings unterbringen kann



    Re: Try- catch blöcke

    d.d.d. - 27.05.2006, 13:47


    Nein kannst du nicht!!!!!!

    Wenn die Fehlermeldung durch throw an catch gelangt wird es ja in einer VARIABLE oder in EINEM(1) String gespeichert!!

    Es wäre also sinnlos sowie unmöglich wenn du einen zweiten String oder eine zweite Variable machen würdest dar der Rückgabe von throw nur in einer gespeichert werden kann!!!!!!!!

    :idea:



    Re: Try- catch blöcke

    DrPhil_Guth - 27.05.2006, 14:50


    Ok, danke das wollt ich nr wissn. Danke vielmals für deine Hilfe!



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Textdatei bearbeiten - gepostet von tarzipan7 am Dienstag 20.11.2007
    Neue Moderatoren wurden ernannt - gepostet von exbs am Mittwoch 28.03.2007
    string abfragen? - gepostet von Godmaster am Dienstag 03.10.2006
    "GuG.h" <-- Header gesucht. - gepostet von exbs am Dienstag 28.11.2006
    Moin - gepostet von Zhero am Dienstag 22.08.2006
    Befehle / Funktionen - gepostet von Walgo am Mittwoch 18.07.2007
    schon wieder probleme: getchar() - gepostet von detewe89 am Donnerstag 03.05.2007
    Wurzelberechnung - gepostet von Kimi am Samstag 17.11.2007
    Begrenzte Darstellungsgenauigkeit! - gepostet von Kimi am Dienstag 06.11.2007
    [C++]Problem mit Dateilese/schreibfunktion - gepostet von Dirty Oerty am Dienstag 23.01.2007



    Ähnliche Beiträge wie "Try- catch blöcke"

    Try something new this summer: Guestbook - Anonymous (Mittwoch 08.03.2006)
    Try to write your name with... - Supplicium (Montag 23.04.2007)
    did you try Genepi - zutyzut (Montag 08.08.2005)
    C.C.Catch_-_Super_Disco_Hits__Compilation - saugfuss (Dienstag 11.10.2005)
    Catch Dry licorice Mini - snusfreak (Sonntag 13.02.2005)
    try - isabelle (Montag 27.03.2006)
    co z nastepnym wydaniem - Anonymous (Mittwoch 07.05.2008)
    kara Di. 4.12 Aran try + Schach - Myrias (Dienstag 04.12.2007)
    Haus zu verkaufen - E28 (Montag 23.02.2009)
    Try to forget - redtears (Samstag 12.08.2006)