voici mon code :
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
 
create or replace procedure test(nb integer:=0)
is
UneException Exception;
UneAutreException Exception;
UneExceptionExceptionnelle Exception;
begin
  if nb=0 then
    raise UneException;
  end if;
  begin 
    if nb=10 then
    raise UneAutreException;
    elsif nb=20 then
      raise UneExceptionExceptionnelle;
    else
      dbms_output.put_line('sous bloc OK');
    end if;
    exception
      when UneAutreException then
        raise_application_error(-20001, 'UneAutreException s''est déclenchée');
    end;
  dbms_output.put_line('bloc principal OK');  
exception
      when UneException then
        raise_application_error(-20002, 'UneException s''est déclenchée');
      when UneExceptionExceptionnelle then
        raise_application_error(-20003, 'UneExceptionExceptionnelle s''est déclenchée');
      when others then
        raise_application_error(-20999, 'Erreur inconnue');
end;
ma question :
pourquoi en passant 10 en paramètre lors de l'exécution, l'exception UneAutreExcepion ne se déclenche-t-elle pas dans le sous bloc et que c'est l'exception other du bloc principal qui se déclenche ?
Quand j'exécute ave 20, Une ExceptionExceptionnelle se déclenche bien.
Je pensais qu'on pouvait déclencher des exceptions dans un sous bloc.
Merci bonne soirée