voici 2 portions de code d'une même dll, la seconde appelant la première
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
function  TMyDllObject.PlusOne: integer;
begin
  Result:=FInt+1;
  raise EMydllException.Create('levée ici dans la dll');
end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
function PlusUn(const AObject: TMyAncestorObject): integer; // exportée
var
  i: integer;
begin
  i:=5;
  with AObject
  as TMyDllObject
  do begin
    Dec(i, 5);
    Result:=PlusOne div i; // pas d'erreur de division par zéro
  end;
  raise EMydllException.Create('pas levée ici dans la dll'); // jamais levée !!!
end;
je cherchais à vérifier les mécanismes de transmission des exceptions levées dans la dll à l'appli : surprise, surprise...
mais pê y-a-t'il une bonne et belle explication ?