Hallo zusammen
Wie der Titel schon sagt stellt sich mir die Frage nach dem best practice für die Behandlung von Fehlern wie z.B. Ungültige Parameter in Funktionen und Prozeduren in selbst geschriebenen Komponenten.
Ein Beispiel: in meiner Komponente gibt es eine Prozedur
Procedure SendText(const UserID : Integer; Text : String);
Es geht hier beispielhaft um den Parameter UserID, welcher größer 0 sein muss. Dies möchte ich bei einer falschen Übergabe z.B. -1 (da intern für eigene Zwecke reserviert) dem User mitteilen. Mir kommen folgende Möglichkeiten und ich wollte fragen wie ihr das lösen würdet:
1.) MessageDlg
Vorteil: Kontrolle an Ort und Stelle in der entsprechenden Funktion der Komponente
Nachteil: der Programmfluss wird gestört und der User kann in seinem Programm nicht selbst reagieren
2. "Error-Event" mit Übergabe der "Fehlernummer"
Vorteil: Volle Kontrolle der Reaktion durch den Benutzer
Nachteil: völlig unabhängige Fehler werden in einer einzigen Routine behandelt was
IMHO sehr unübersichtlich werden könnte. Sowohl intern in der Komponente als auch im eigentlichen Programm
3.
Exception-Handling
Sehr wenig Erfahrung ehrlich gesagt, da ich in meinen Programmen dies bisher immer zuverlässig selbst durch Prüfung der Eingaben etc. abgefangen habe, so dass die Funktion des Programmes ohne "falsche" Eingabe gar nicht erst aufgerufen wurde. Das
Exception-Handling wirkt auf mich immer so "hart" wenn Fehler auftreten. Sollte dies nicht schon durch Plausibilitätsprüfungen der Eingaben etc. abgefangen werden?
Wie löst ihr solche Probleme oder welche Methode würdet ihr wählen?
Beste weihnachtliche Grüße,
Michael