Verfügbare Informationen zu "Try- catch blöcke"
Qualität des Beitrags: 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:33Try- 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)