Exception abfangen mit try/catch

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
NaHCO3
Beiträge: 3
Registriert: So Okt 17, 2010 6:14 pm

Exception abfangen mit try/catch

Beitrag von NaHCO3 » So Okt 17, 2010 6:23 pm

Moin!
Ich hoffe ich bin hier als C++ Anfänger mit Noobfragen richtig.
"proggen.org - Programmieren lernen von Anfang an" hört sich ja nach "Anfänger Welcome" an^^
Ich poste jetzt einfach mal meine Problematik:

Code: Alles auswählen

{
  werte = new TStringList;
        try
        {
        werte->LoadFromFile(DateiName);


        }
        catch(...)

        {
        Application->MessageBox("Fehler","Achtung");
}
Sollte eigentlich bezwecken, dass eine Fehlermeldung ausgegeben wird, wenn er die Datei nicht laden kann.
Es gibt aber leider trotzdem eine Exception und das Programm startet nicht..
Kann mir jemand erklären, warum das so ist und/oder mir erklären wie ich es richtig machen kann?
Benutze C++ Builder 6 und der Code steht in der FormCreateMethode falls das wichtig ist..

Edit: Grml, hat sich erledigt.
Wenn ich das Programm ausserhalb vom Builder laufen lasse, funktioniert es wie gewünscht....
Ist wohl noch so eingestellt, dass es abbricht, wenn eine Exception auftaucht.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Exception abfangen mit try/catch

Beitrag von Xin » Mo Okt 18, 2010 1:02 am

NaHCO3 hat geschrieben:Moin!
Ich hoffe ich bin hier als C++ Anfänger mit Noobfragen richtig.
"proggen.org - Programmieren lernen von Anfang an" hört sich ja nach "Anfänger Welcome" an^^
Wir heißen notfalls auch Professionelle willkommen. ;-)

Willkommen im Forum, das Brett 'Uservorstellung' freut sich über neue Bekanntschaften ;-)
NaHCO3 hat geschrieben:Ich poste jetzt einfach mal meine Problematik:
...
Kann mir jemand erklären, warum das so ist und/oder mir erklären wie ich es richtig machen kann?
Benutze C++ Builder 6 und der Code steht in der FormCreateMethode falls das wichtig ist..
Bitte beachte, wenn Du C++ lernen willst, dass Du mit C++-Builder Dich sehr stark auf Borland/Imprise/Embarcadero festlegst. Also eine Firma, die ihr Framework gerne weitergibt und das mehr und mehr an Bedeutung verlierst - obwohl es vom Prinzip her gar nicht mal schlecht war.

Wenn Du noch ganz am Anfang stehst, dann rate ich Dir erstmal zum Standard-C++ und Dir dann Frameworks wie Qt oder Gtk anzusehen.
NaHCO3 hat geschrieben:Edit: Grml, hat sich erledigt.
Wenn ich das Programm ausserhalb vom Builder laufen lasse, funktioniert es wie gewünscht....
Ist wohl noch so eingestellt, dass es abbricht, wenn eine Exception auftaucht.
Der Debugger setzt dann ein, oder was heißt "abbrechen"?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

NaHCO3
Beiträge: 3
Registriert: So Okt 17, 2010 6:14 pm

Re: Exception abfangen mit try/catch

Beitrag von NaHCO3 » Di Okt 19, 2010 11:01 am

Xin hat geschrieben: Willkommen im Forum, das Brett 'Uservorstellung' freut sich über neue Bekanntschaften ;-)
Danke, hole ich noch nach ;)

Xin hat geschrieben:
Wenn Du noch ganz am Anfang stehst, dann rate ich Dir erstmal zum Standard-C++ und Dir dann Frameworks wie Qt oder Gtk anzusehen.
Jap, ich stehe noch gaaaanz am Anfang. Hab auch so ein totales Noob-Buch, welches ich gerade durcharbeite (C++ For Kids :oops: wurde mir von fortgeschrittenen Programmieren empfohlen, weil es keinerlei Programmierkenntnise vorraussetzt..is aber teilweise auch schon zu anfängerfreundlich......). Das Buch arbeitet mit Borland C++ Builder 6..
Kansst du mir evtl ein Buch empfehlen, was mit den, von dir genannten Frameworks arbeitet? Werd das Buch wohl noch zuende durcharbeiten, aber würde dann auch gerne mit einem anderen Framework weitermachen..
Xin hat geschrieben:]
Der Debugger setzt dann ein, oder was heißt "abbrechen"?
Genau.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Exception abfangen mit try/catch

Beitrag von Xin » Di Okt 19, 2010 11:37 am

NaHCO3 hat geschrieben:
Xin hat geschrieben:Willkommen im Forum, das Brett 'Uservorstellung' freut sich über neue Bekanntschaften ;-)
Danke, hole ich noch nach ;)
Ist immer interessant, wenn sich die Leute etwas vorstellen, damit man weiß, mit wem man es zu tun hat. Du kannst Dir die Uservorstellung der anderen ja auch ansehen.
NaHCO3 hat geschrieben:
Xin hat geschrieben:Wenn Du noch ganz am Anfang stehst, dann rate ich Dir erstmal zum Standard-C++ und Dir dann Frameworks wie Qt oder Gtk anzusehen.
Jap, ich stehe noch gaaaanz am Anfang. Hab auch so ein totales Noob-Buch, welches ich gerade durcharbeite (C++ For Kids :oops: wurde mir von fortgeschrittenen Programmieren empfohlen, weil es keinerlei Programmierkenntnise vorraussetzt..is aber teilweise auch schon zu anfängerfreundlich......). Das Buch arbeitet mit Borland C++ Builder 6..
Schau an... das Buch wollte ich mal haben, weil da eine Lizenz für Borland dabei liegt.
Inzwischen interessiert Borland aber auch nicht mehr, deswegen... egal.

Ich weiß nicht, wie alt Du bist, aber als ich in der Grundschule programmieren lernte, gab es keine Kiddy-Bücher und als ich später im Infomarmatik-Unterricht pädagogisch wertvoll unterrichtet wurde, kam ich mir eigentlich nur "verallerwertest" vor.

Man kann als Kind programmieren lernen, keine Frage. Aber man kann nicht kindlich programmieren. Hol Dir ein Buch, wo was drinsteht und wenn Du Schwierigkeiten hast, etwas zu verstehen, frag halt nach. Dafür sind Foren, wie diese da.
NaHCO3 hat geschrieben:Kansst du mir evtl ein Buch empfehlen, was mit den, von dir genannten Frameworks arbeitet? Werd das Buch wohl noch zuende durcharbeiten, aber würde dann auch gerne mit einem anderen Framework weitermachen..
Wenn Du am Anfang stehst, lerne erstmal C++ auf der Konsole. Das sieht nicht so schick aus, aber wenn Du programmieren lernen möchtest, geht es erstmal darum, dass Du die Grundbegriffe lernst.
Da wäre es interessant zu wissen, wo Du gerade dran bist.
Du schreibst, dass Du noch ganz am Anfang bist, während ich Exceptions eigentlich eher am Schluss unterrichte... also kann ich nicht einschätzen, wo Du eigentlich dran bist.
Xin hat geschrieben:]
Der Debugger setzt dann ein, oder was heißt "abbrechen"?
Genau.[/quote]
Ich habe mit Borland so gut wie nichts gemacht... aber wenn es eine Fehlerbehandlung gibt, dann sollte das Programm eigentlich weiterlaufen... kann man vermutlich einstellen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

NaHCO3
Beiträge: 3
Registriert: So Okt 17, 2010 6:14 pm

Re: Exception abfangen mit try/catch

Beitrag von NaHCO3 » Di Okt 19, 2010 11:45 am

Xin hat geschrieben: ...
Ich weiß nicht, wie alt Du bist, aber als ich in der Grundschule programmieren lernte, gab es keine Kiddy-Bücher und als ich später im Infomarmatik-Unterricht pädagogisch wertvoll unterrichtet wurde, kam ich mir eigentlich nur "verallerwertest" vor.

Man kann als Kind programmieren lernen, keine Frage. Aber man kann nicht kindlich programmieren. Hol Dir ein Buch, wo was drinsteht und wenn Du Schwierigkeiten hast, etwas zu verstehen, frag halt nach. Dafür sind Foren, wie diese da.
...
Hehe, ne, habe zwar ein "Kiddy-Buch" aber das "Kiddy-Sein" liegt dann doch schon eine Weile hinter mit.
Habe mich nur für dieses Buch entschieden, weil es mit empfohlen wurde und ich kein anderes gefunden habe, das wirklich bei 0 anfängt...
Im Informatikunterricht haben wir damals auch nur so'n Müll mit Basic gemacht... Kann man also als Grundlage nicht wirklich gebrauchen ;)

Edit: Wie gesagt, stehe noch ziemlich am Anfang: Variablen, Konstanten, if..else.., do..while, integer und float... sind mir schon alles Begriffe..also das halbe C-Tutorial hier in etwa^^
Wenn das Tutorial komplett wäre, könnte ich ja damit lernen, anstelle von meinem Buch;)
Bei den Buchrezensionen wird ja auch kein Anfängerbuch beschrieben.. Würde mir halt gern ein Buch holen, dass bei 0 anfängt und das wenn es geht, so wie du beschrieben hast, mithilfe der Konsole.. Gibts da nichts brauchbares?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Exception abfangen mit try/catch

Beitrag von Xin » Di Okt 19, 2010 12:55 pm

NaHCO3 hat geschrieben:Edit: Wie gesagt, stehe noch ziemlich am Anfang: Variablen, Konstanten, if..else.., do..while, integer und float... sind mir schon alles Begriffe..also das halbe C-Tutorial hier in etwa^^
Wenn das Tutorial komplett wäre, könnte ich ja damit lernen, anstelle von meinem Buch;)
Ich habe ein Buch von Jürgen Wolf, das ist gut zu lesen. Seine Bücher werden häufig empfohlen, ich habe sie aber nicht selbst, in das C von A bis Z habe ich nur mal reingeschaut. Dort bekommt man auch schon einigen Überblick zu diversen Frameworks. Entsprechend gibt es wohl ein C++ von A bis Z.

Das Buch wird mal hochgelobt, mal deutlich kritisiert. Auf mich machte es einen brauchbaren bis guten Eindruck und das Buch von Wolf, dass ich habe (Linux Programmierung), gefällt mir.
NaHCO3 hat geschrieben:Bei den Buchrezensionen wird ja auch kein Anfängerbuch beschrieben.. Würde mir halt gern ein Buch holen, dass bei 0 anfängt und das wenn es geht, so wie du beschrieben hast, mithilfe der Konsole.. Gibts da nichts brauchbares?
Ich habe C aus "Jetzt lerne ich C" gelernt. Also mehr oder weniger... ich habe das erste Kapitel gelesen und von den folgenden mir die Quelltexte angeguckt.
C++ habe ich aus einem rororo-Buch gelernt - das Buch hat 20 Mark gekostet (es sollte möglichst billig sein) und dünn, weil ich ja vermutlich eh wieder nur die Quelltexte lese. Strukturierte Einführung in C++.

Du führst in Deiner Aufzählung keine Begriffe der klassenorientierten Programmierung auf, wie class oder private. Auch aus dem objektorientierten Bereich (virtual) steht da nichts. Von daher scheinen mir Exceptions - Fehlerbehandlung für schwerwiegende Fehler - noch gar nicht in Deinem Bereich zu sein. Du musst zunächst erstmal lernen, schwerwiegende Fehler zu machen, dann sie zu vermeiden und wenn Du dann noch unvermeidliche schwerwiegende Fehler hast, dann kann man sich um Exceptions kümmern.

Was genau fehlt Dir im C-Tutorial? Ich will das C-Tutorial sowieso noch anfassen, weil es mir im derzeitigen Zustand auch nicht zusagt. Besser als meine Kritik ist jedoch die Kritik von jemanden, der sich damit lernt.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Exception abfangen mit try/catch

Beitrag von cloidnerux » Di Okt 19, 2010 1:24 pm

Habe mich nur für dieses Buch entschieden, weil es mit empfohlen wurde und ich kein anderes gefunden habe, das wirklich bei 0 anfängt...
Ich kann dir "C/C++, Ulrich Kaiser + Christoph Kecher, Galileo Computing" empfehlen. Es ist zwar kein Anfängerbuch, das einem das auf einem Kindlichen Niveau erklärt, aber es fängt bei den Grundprinzipien der Theoretischen Informatik an, arbeitet sich durch C mit allem was dazu gehört und führt dich dann in C++ ein.
Zu jedem Kapitel gibt es Übungsaufgaben, um das erlernte anzuwenden. Aber es ist nicht sehr billig, aber Qualität ist bekanntlich teuer.
Ich kannte ein Anfängerbuch für sehr wenig Geld, da waren die Quelltexte falsch und die Rechtschreibung war grauenhaft. Also scheiß dein Geld nicht zum Fenster raus, nur weil du Angst hast, etwas nicht zu verstehen.
Programmieren ist so einfach wie Mathe.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Exception abfangen mit try/catch

Beitrag von Xin » Di Okt 19, 2010 1:32 pm

cloidnerux hat geschrieben:Also scheiß dein Geld nicht zum Fenster raus, nur weil du Angst hast, etwas nicht zu verstehen.
Der Mann ist doch kein Goldesel oder gibst Du uns den Ulrich Wickert? ("Ist bei der CDU auch nach dem Ausscheißen – äh – Ausscheiden…") :lol:
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Exception abfangen mit try/catch

Beitrag von cloidnerux » Di Okt 19, 2010 1:51 pm

cloidnerux hat geschrieben:Also scheiß dein Geld nicht zum Fenster raus, nur weil du Angst hast, etwas nicht zu verstehen.

Der Mann ist doch kein Goldesel oder gibst Du uns den Ulrich Wickert? ("Ist bei der CDU auch nach dem Ausscheißen – äh – Ausscheiden…") :lol:
Man sollte doch nicht blind der Rechtschreibprüfung vertrauen^^
War wohl doch nicht das gesuchte "schmeiße" :oops:
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Exception abfangen mit try/catch

Beitrag von Xin » Di Okt 19, 2010 2:34 pm

cloidnerux hat geschrieben:
cloidnerux hat geschrieben:Also scheiß dein Geld nicht zum Fenster raus, nur weil du Angst hast, etwas nicht zu verstehen.
Der Mann ist doch kein Goldesel oder gibst Du uns den Ulrich Wickert? ("Ist bei der CDU auch nach dem Ausscheißen – äh – Ausscheiden…") :lol:
Man sollte doch nicht blind der Rechtschreibprüfung vertrauen^^
War wohl doch nicht das gesuchte "schmeiße" :oops:
Scheißen und Schmeißen haben den gleichen Wortursprung. Das Gechmissene ist etwas Geworfenes oder etwas Geschmiertes. Ursprünglich schmiss man Lehm an die Wände, um Lehm-Hütten abzudichten, man warf also etwas Bräunliches an die Wand und verschmierte es.
Schmieren und Schmeißen dichtet die Wand ab.
Wenn man etwas Bräunliches auf den Boden fallen lässt (und in der Regel danach nicht verschmiert), da hat sich das 'm' wohl abgenutzt.

Beide Wörter gelten nicht mehr als als Hochdeutsch... deswegen sollte man sich vielleicht eher mit "Werfen" ausdrücken.

Auch die Leute, die Taschengeld kriegen, sollten sich bewusst werden, dass sie dafür meist nicht gegen ihre Eltern in den Krieg ziehen - die meisten bekommen Taschengeld ohne Gewaltanwendung.
Auch ist es nicht erforderlich den Mixer einzuschalten, um ihn als Rührgerät zu nutzen. Er ist kein Rührgerät, weil er sich dreht, sondern weil er in Kontakt mit dem Teig kommt. Der Mixer berührt den Teig. Wenn man ihn einschaltet, wird der Teig gemischt. Wenn mich etwas zu Tränen rührt, habe ich ja auch nicht zwangsweise einen Mixer verschluckt... "I'm touched" - nicht "I'm mixed" ^^

Es gibt viele Wörter, die in ihrer Bedeutung häufig einen ganz anderen Ursprung haben, als man sie heute benutzt. Wer Taxi fährt, ist nicht zwangsläufig ein Chauffeur. Wenn sich jemand erregt und wütend wird - <wortspiel>quasi aus der Haut fährt</wortspiel> - dann echauffiert er sich.
Der Chauffeur fuhr ursprünglich auf der Dampflok, aber er war nicht der Lokführer. Er war der Heizer. Heutzutage braucht man keinen Heizer mehr in der Lok, nur noch den Lokführer. Damit wurde der Chauffeur vermutlich arbeitslos und fährt seitdem Taxi...?! Und wenn sich der Chauffeur echauffiert, dann hat er ein erhitztes Gemüt.

Schöner Tippfehler ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten