Einzelnen Beitrag anzeigen

Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#1

Wie man Fehler über Try und Except abfängt!

  Alt 21. Nov 2004, 12:49
Hallo,

ich will an dieser Stelle einen kleinen Text zum Thema
Try und Except verfassen, da in letzter Zeit
viele Fragen dazu gekommen sind.

Dazu brauchen wir die Komponenten Label, Edit und
einen Button. Wir wollen das Programm so geschalten,
dass es zu den Zahlen 1-6 die jeweiligen Bedeutungen
sehr gut - ungenügend im Label Preis gibt.

In das Label schreiben wir:
"Gib eine Note ein:"

Den Button nennen wir:
"OK"

Los geht's:

Doppelklick auf den Button1 und es erscheint der Quelltext:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

end;
Zwischen procedure und begin fügen wir folgendes ein: var Note: Integer; Das ganze sieht dann so aus:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Note: Integer;
begin

end;
Jetzt kommt das eigentliche Programm:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Note: Integer;
begin
  try
    Note := StrToInt (Edit1.Text)
    if Note = 1 then Label1.Caption := 'sehr gut';
    if Note = 2 then Label1.Caption := 'gut';
    if Note = 3 then Label1.Caption := 'befriedigend';
    if Note = 4 then Label1.Caption := 'ausreichend';
    if Note = 5 then Label1.Caption := 'mangelhaft';
    if Note = 6 then Label1.Caption := 'ungenügend';
  except
    Label1.Caption := 'Schwachsinn!';
  end;
end;
Startet das Programm und gebt die Zahlen 1-6 ein!
Das Programm antwortet mit den jeweiligen Noten als Wörter.

Doch was ist, wenn man nun aus Versehen einen Buchstaben eingibt?
Dann erscheint eine Fehlermeldung von Delphi:
...Meldung: "t' ist kein gültiger Intergerwert'. Prozeß wurde
angehalten...

Drückt einfach auf OK ein schließt das Programm.
Wir haben etwas vergessen.
Unter Tools, Debugger-Optionen, BS-Exceptions unten
Integrierte Fehlersuche deaktivieren. Damit teilt ihr Delphi mit,
dass ihr einen möglichen Fehler selber bereinigen möchtet!
Das haben wir mit try und except gemacht.
Schaut euch den Quelltext noch einmal an.
Hier das Prinzip:

try (deutsch=versuche)
// hier stehen alle Befehle, die Versuchsweise durchgeführt werden

except (deutsch=außer)
// hier stehen alle Befehle, die einen Fehler auswerten und ihn dann bereinigen

Das Prinzip:

try

AnweisungsBlock 1

except

AnweisungsBlock 2

end;

Der Anweisungsblock nach try hört da auf, wo except anfängt.
Der Anweisungsblock except muss immer mit einem end; abgeschlossen
weden!

Ich hoffe ich konnte damit ein wenig helfen!!

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat