Nicht
obwohl, sondern
weil du diese komische Exceptionbehandlung da so reingefriemelt hast, bringt dir das nichts.
Exceptions nur behandeln, wenn ich dafür eine Ausweichmöglichkeit habe.
Einfach nur einen nichtssagenden Text anzeigen ist keine.
Beispiel:
Eine simple Berechnung
Delphi-Quellcode:
function f( const x : Extended ) : Extended;
begin
Result := 1/x;
end;
Beim Aufruf von
y := f(0);
wird die
Exception EDivByZero ausgelöst.
Na und? Wenn der erfolgreiche Ablauf von dem Wert abhängig ist, dann ist hier wohl ein Fehler passiert und der restliche Ablauf ist somit nicht mehr zu gewährleisten.
Stellen wir uns ein anderes Szenario mit der gleichen Funktion vor.
Die Funktion soll grafisch dargestellt werden. Jetzt ticken die Uhren anders
Delphi-Quellcode:
x := -1;
while x <= 1 do
begin
try
y := f( x );
DrawPoint( x, y );
except
on E: EDivByZero do
NoDataFor( x );
end;
x := x + 0.1;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)