gratifiant > comp.lang.* > comp.lang.ada

Blady (29/09/2019, 10h11)
Bonjour,

Quelques questions issues d?exemples du dernier AARM 202x Section 11.3
Paragraphe 2.a.8, 2.a.10 et 2.a.11 :

Obj : Boolean := Func_Call or else (raise TBD_Error with Atomic);

--> je comprend que si Func_Call retourne False alors l'exception
TDB_Error est levée,
incidemment dans le cas contraire cela donne Obj toujours True ?

Pre : Boolean := (if not Is_Valid(Param) then raise Not_Valid_Error);

--> même constat avec Is_Valid, me semble équivalent à "Is_Valid(Param)
or else raise Not_Valid_Error" ?

A : A_Tagged := (Some_Tagged'(raise TBD_Error) with Comp => 'A');
B : Some_Array := (1, 2, 3, others => raise Not_Valid_Error);
C : Natural := Func (Val => raise TBD_Error);
D : A_Tagged := ((raise TBD_Error) with Comp => 'A');

--> je comprend qu'une expression raise peut se mettre partout où une
expression est légale, mais concernant les exemples A, B, C et D, il me
semble qu'à chaque fois l'exception est toujours levée, à quoi cela
sert-il ?

Merci, Pascal.
J-P. Rosen (29/09/2019, 12h35)
Le 29/09/2019 à 10:11, Blady a écrit :
> Quelques questions issues d?exemples du dernier AARM 202x Section 11.3
> Paragraphe 2.a.8, 2.a.10 et 2.a.11 :

Attention: c'est le manuel annoté, donc il contient des tas d'exemples
bizarroïdes pour expliquer certaines règles. Les annotations sont
totalement informelles.
[..]
Discussions similaires