Blady
2019-09-29 08:11:45 UTC
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.
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.