Autor | Thema: ExceptionErrorHandling | | Datum:14.06.02 11:39 
(mail@stschnell.de) | |
Hallo Community,
folgenden Vorschlag möchte ich für das Abfangen von Exceptions und Laufzeitfehlern in Profan machen. In Delphi wird ein Konzept von Try - Finally - Exception verwendet, das sieht so aus:
Function IntTest(i, j : Integer) : Integer; StdCall;
Begin
Try
IntTest:=i+j;
Finally
{Hier Ende, wenn notwendig}
Except
IntTest:=-1;
End;
End;
Das reservierte Wort Try leitet einen geschützten Block ein. Innerhalb dieses geschützten Blockes werden Exceptions abgefangen, damit das Programm mit einer eigenen Ausnahmebehandlung reagieren kann. Nach dem Auftreten eines Exception geht es direkt am reservierten Wort Except weiter. Das bedeutet, dass die Routine direkt verlassen wird. Damit dies nicht dazu führt, dass Resourcen wie dynamischer Speicher oder Datei-Handles nicht wieder freigegeben werden, kann die Routine mit einem Finally-Block abgeschlossen werden. Die Besonderheit des Finally-Blocks besteht darin, dass er in jedem Fall ausgeführt wird, also auch, wenn kein Exception auftritt. Das reservierte Wort Except schlie§t den geschützten Block und leitet die Ausnahmebehandlung ein. Tritt ein Fehler auf, so wird das Resultat der Funktion Int Test in diesem Fall auf -1 gesetzt. Mit einem End wird der Block insgesamt abgeschlossen.
Was haltet Ihr davon? Kann man das auch so in Profan realisieren?
Tschüss
Stefan
|
| | Datum:14.06.02 20:48 
(webmaster@yatil.de) | |
Hallo Stefan,
ich, persönlich, habe soetwas in Profan² noch nicht gebraucht kenne aber die Anwendung in Delphi und denke, dass eine Try-Except-Konstruktion nur bei Grenzfällen nötig ist.
Ansich ist soetwas natürlich nicht verkehrt, weiß aber nicht in wieweit das einprogrammiert werden könnte.
MfG, Eric Eggert
|
| | Datum: 14.06.02 21:00 
(schmidts@flat2serv.de) | |
Try..Except macht durchaus Sinn, bei C heisst das "Catch". Wenn man davon ausgeht, dass ev. ein Fehler auftaucht, dann ist es sehr sinnvoll, um eine Aufgabe mit Sicherheit zu beenden. Man kann Exceptions auch in der Programmierung nutzen, was aber nur bei OOP Sinn macht: Exceptions werden von einer Sub-Unterklasse erzeugt und gelangen so an die Application.
Lange Rede, kurzer Sinn: Finde ich ebenfalls sehr gut ;)
Sven
|
|
|