y'a-t'il quelque chose qui s'execute apres les exceptions ? de manière à pouvoir factoriser les traitements de certaines d'entre elles...
sinon est ce deja possible (de factoriser les traitememnt de certaines exceptions) et comment le fait-t'on ?
y'a-t'il quelque chose qui s'execute apres les exceptions ? de manière à pouvoir factoriser les traitements de certaines d'entre elles...
sinon est ce deja possible (de factoriser les traitememnt de certaines exceptions) et comment le fait-t'on ?
Soit la structure de programme suivante :
Si une exception se déclenche en (1) elle ne pourra être interceptée qu'en (9), (10) ou (11), suivant le type d'exception générée. En (10) on traite de la même manière les exception "no_data_found" et "too_many_rows".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 declare err_trt exception; begin (1)... begin (2) ... exception when no_data_found then (3) ... err_trt; when too_many_rows then (4) .. raise too_many_rows; end; begin (5) ... exception when no_data_found then (6) ... when too_many_rows then (7) .. when others then (8) err_trt; end; ... exception when err_trt then (9) ... when no_data_found or too_many_rows then (10) ... when others then (11) ... end;
Si une exception est levée en (2), elle sera d'abord interceptée en (3) ou (4), s'il s'agit d'une exception "no_data_found" et "too_many_rows". Sinon elle sera interceptée dans le when others en (11). Il est possible de propager l'exception dans un bloc de niveau inférieur : ainsi l'exception traitée en (3) sera aussi traitée en (9) et celle traitée en (4) sera également traitée en (10).
Les exceptions traitées en (6) et en (7) ne sont pas propagées, le traitement continue.
Partager