Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Try-Except Blöcke


MrBlack - Sa 02.01.10 19:48
Titel: Try-Except Blöcke
Hallo, zum ersten Mal bin ich dabei einen try-except Block zu verwenden. Leider erhalte ich einen Fehler. Ziel meines Programms ist es herauszufinden, ob in dem editfeld ein Integer steht. Dazu habe ich mir folgendes überlegt:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var a:integer;
var fehler:boolean;

begin
fehler:=false;
try
  a:= StrToInt(edit1.text);
Except
  fehler:=true;
end;
.
.
.
end;


Nun erhalte ich aber dennoch einen hässlichen Fehler, weil im editfeld kein integer steht... Aber ich dachte, gerade das wäre ich umgangen!? Danke für Eure Hilfe!!!!



Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Xeron - Sa 02.01.10 19:54

Es gibt eine Option (ich weiß leider nicht wo die steht) , die heißt "bei Exception anhalten"


Gausi - Sa 02.01.10 19:58

Bei Delphi 2009 findet man das unter Optionen -> Debugger-Optionen -> Sprach-Exceptions, bei Delphi 7 unter Debugger-Optionen -> SprachExceptions


jaenicke - Sa 02.01.10 20:01

user profile iconMrBlack hat folgendes geschrieben Zum zitierten Posting springen:
Nun erhalte ich aber dennoch einen hässlichen Fehler, weil im editfeld kein integer steht...
Wichtig ist, dass der Fehler innerhalb von try..except nur beim Debuggen angezeigt wird. Denn da geht es ja um Fehlerbehebung, so dass es dort ja auch wichtig ist Fehler zu sehen. Wie man das ändern kann wurde ja bereits erwähnt.

Wenn du das Programm aber ohne Delphi startest, dann wird der Fehler abgefangen und nicht angezeigt!

In diesem Fall ist try..except aber ohnehin Blödsinn, da nimm lieber TryStrToInt...


BenBE - Sa 02.01.10 20:01

Exceptions sollte man so sparsam wie möglich verwenden.

Für deinen Fall würde sich daher eher die Funktion TryStrToInt anbieten ...


MrBlack - Sa 02.01.10 20:56

Danke für die schnelle Hilfe! Klappt prima! =)