In Pascal programmieren, wie lass ich bei einem EConvertError etwas ausgeben?
Hallo, ich bin dabei einen Taschenrechner zu programmieren (natuürlcih als Hausaufgeb), in Pascal, Lazarus als Programmierumgebung, nun arbeitete ich hier so, dass ich den in das EDIT-Feld eingegeben Text mit strToFloat zu dem Datentyp als Zahl umrechnen lasse, damit man damit rechnen kann, nun wenn da irgendwelche Buchstaben stehen kriegt man natürlich einen error und das Programm stürzt ab, wie kann ich jetzt das verhindern?
1 Antwort
Du kannst mit TryStrToFloat arbeiten. Den Fehler würdest durch also mittels if-then-else abfangen.
Andernfalls gibt es try-except:
try
number := StrToFloat(inputField.Text);
except
on ex : Exception do
ShowMessage(ex.Message);
end;
Wenn in dem Kontext von try ein unbehandelter Ausnahmefall ausgelöst wird (ein String, der nicht zu einer Zahl konvertiert werden kann, wäre ein solcher), springt der Code in den Kontext von except und prüft, ob dieser einen Block enthält (on), der ihn behandelt.
Ein weiteres Beispiel findest du auch in der Dokumentation für die Methode StrToFloat.
Exception ist hier die Basisklasse für alle Exceptions, die so vorkommen können. Wenn es eine konkretere Subklasse zu dieser gibt, die den Fehler besser beschreibt, solltest du diese nutzen. Hierfür müsstest du aber selbst einmal mehr recherchieren.