fix(android): aucune exception ne sort du pont sans laisser son nom

Le dispatch n'etait garde par rien : une faute dans un handler remontait
jusqu'a FMX, qui affichait "Access violation" avec une adresse, tandis
que le journal ne montrait que la commande recue suivie de rien. On
savait qu'une commande echouait, jamais laquelle ni pourquoi.

On attrape, on nomme, et on rend la main - une commande fautive ne doit
pas laisser l'interface voilee derriere une boite de dialogue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-28 16:39:10 +01:00
parent a41c61405c
commit 4e0223bee5
+19
View File
@@ -1616,7 +1616,26 @@ begin
var LDbg := AUrl.Substring(6); var LDbg := AUrl.Substring(6);
if LDbg.Contains('?') then LDbg := LDbg.Substring(0, LDbg.IndexOf('?')) + '?...'; if LDbg.Contains('?') then LDbg := LDbg.Substring(0, LDbg.IndexOf('?')) + '?...';
Log('cmd ' + LDbg); Log('cmd ' + LDbg);
// AUCUNE EXCEPTION NE SORT DU PONT SANS LAISSER SON NOM.
//
// Le dispatch n'etait garde par rien : une faute dans un handler remontait
// jusqu'a FMX, qui affichait "Access violation" avec une adresse - et le
// journal, lui, ne montrait que la commande recue suivie de rien. On savait
// qu'une commande echouait, jamais laquelle ni pourquoi, et c'est
// exactement la difference entre chercher et trouver.
//
// On attrape, on nomme, on rend la main : une commande fautive ne doit pas
// laisser l'interface voilee derriere une boite de dialogue.
try
HandleWebCommand(AUrl.Substring(6)); HandleWebCommand(AUrl.Substring(6));
except
on E: Exception do
begin
Log('cmd ' + LDbg + ' FAILED: ' + E.ClassName + ' - ' + E.Message);
SetBusy(False);
StatusErr('Command failed - see log');
end;
end;
end; end;
end; end;