ACQUIREEXCEPTIONOBJECT |
Acquérir un objet d'exception |
---|---|
Free Pascal | System |
Syntaxe
Function AcquireExceptionObject: Pointer; |
Description
Cette fonction permet de demander l'adresse de l'objet d'exception courant. Il augmente le nombre de références de l'objet d'exception, il ne sera donc pas libéré. L'appel de cette méthode n'est valide que dans un bloc d'exception «Except».
Remarques
- L'effet de cette fonction est contrecarré en sur-levant une exception via le mot réservé raise.
- Pour vous assurer que l'objet d'exception est libéré lorsqu'il n'est plus nécessaire, vous devriez utiliser la fonction ReleaseExceptionObject lorsque la référence n'est plus nécessaire.
- S'il n'y a aucune exception en cours, une erreur d'exécution 231 se produit.
Exemple
Voici un exemple montrant l'utilisation de la fonction «AcquireExceptionObject» :
- Program AcquireExceptionObjectSamples;
-
- {$MODE Delphi}
-
- Uses SysUtils;
-
- Var
- X:Pointer;
- L:Record
- Seg,Off:Word;
- End Absolute X;
- I:Integer;
-
- BEGIN
- For I:=-10 to 3 do Begin
- Try
- WriteLn('I = ',I,', 1/I = ',1/I:0:2);
- Except
- On EDivByZero do Begin
- X:=AcquireExceptionObject;
- WriteLn('Division par 0, Seg = ',IntToHex(L.Seg,4),'h, Ofs = ',IntToHex(L.Off,4),'h');
- End;
- End;
- End;
- END.
on obtiendra le résultat suivant :
I = -10, 1/I = -0.10I = -9, 1/I = -0.11
I = -8, 1/I = -0.13
I = -7, 1/I = -0.14
I = -6, 1/I = -0.17
I = -5, 1/I = -0.20
I = -4, 1/I = -0.25
I = -3, 1/I = -0.33
I = -2, 1/I = -0.50
I = -1, 1/I = -1.00
I = 0, 1/I = Division par 0, Seg = 5768h, Ofs = 0005h
I = 1, 1/I = 1.00
I = 2, 1/I = 0.50
I = 3, 1/I = 0.33
Voir également
Dernière mise à jour : Samedi, le 18 juillet 2015