Difference between revisions of "ExitProc/de"
From Free Pascal wiki
Jump to navigationJump to searchLine 5: | Line 5: | ||
Auch bei Beendigungen durch eine Laufzeitfehler.<br><br> | Auch bei Beendigungen durch eine Laufzeitfehler.<br><br> | ||
Es wird empfohlen die alte '''ExitProc''' zu sichern, und dies bei der neuen '''ExitProc''' wieder aufzurufen. | Es wird empfohlen die alte '''ExitProc''' zu sichern, und dies bei der neuen '''ExitProc''' wieder aufzurufen. | ||
+ | |||
+ | =ExitCode= | ||
+ | '''ExitCode''' gibt den Fehlercode an, mit welchen der Abbruch kommt. In der Regel, wen '''ExitCode''' 0 ist, wurde das Programm normal beendet. | ||
==Beispiel== | ==Beispiel== | ||
Line 59: | Line 62: | ||
==Mit erzwungenem Ende== | ==Mit erzwungenem Ende== | ||
Wen man ein Programm-Ende mit '''Halt()''' erzwingt, wird '''ExitProc''' trotzdem aufgerufen.<br> | Wen man ein Programm-Ende mit '''Halt()''' erzwingt, wird '''ExitProc''' trotzdem aufgerufen.<br> | ||
− | In diesem Beispiel hat dann '''ExitCode''' 123. | + | In diesem Beispiel hat dann der '''ExitCode''' 123. |
<syntaxhighlight> | <syntaxhighlight> | ||
Halt(123); | Halt(123); |
Revision as of 18:38, 24 April 2018
ExitProc
ExitProc, kann man eine Procedure zuweisen, welche bei Programm-Ende aufgerufen wird.
Auch bei Beendigungen durch eine Laufzeitfehler.
Es wird empfohlen die alte ExitProc zu sichern, und dies bei der neuen ExitProc wieder aufzurufen.
ExitCode
ExitCode gibt den Fehlercode an, mit welchen der Abbruch kommt. In der Regel, wen ExitCode 0 ist, wurde das Programm normal beendet.
Beispiel
In diesem Beispiel, wird bewusst eine Datei geöffnet, welche es nicht gibt.
program ExitProc_Example;
const
MyExitCode = 123;
var
OldExitProc: Pointer;
procedure Ende;
begin
WriteLn('Das ist das Ende');
case ExitCode of
2: begin
WriteLn('Datei nicht gefunden');
end;
MyExitCode: begin
WriteLn('Es wurde bewusst mit ', MyExitCode, ' abgebrochen');
end;
else begin
WriteLn('Fehler: ', ExitCode);
end;
end;
ExitProc := OldExitProc;
end;
var
f: file;
begin
// Alte ExitProc sichern.
OldExitProc := ExitProc;
// Neue ExitProc zuweisen.
ExitProc := @Ende;
// Eine Datei öffnen, welche es nicht gibt.
Assign(f, 'abc.txt');
// Dies löst einen Laufzeitfehler 2 aus.
Reset(f);
// Mit eigenem Code abbrechen.
Halt(MyExitCode);
end.
Mit erzwungenem Ende
Wen man ein Programm-Ende mit Halt() erzwingt, wird ExitProc trotzdem aufgerufen.
In diesem Beispiel hat dann der ExitCode 123.
Halt(123);
Autor: Mathias