Jetzt habe ich es gefunden: Es gab doch ein Application.OnException. Das hatte ich anscheinend verdrängt/vergessen. Den Code dafür hatte ich aus einem Forum des Datenbankherstellers (ElevateDB).
Delphi-Quellcode:
if Assigned(E)
then begin
if (E
is EDatabaseError)
and (E
is EEDBError)
then
begin
if EEDBError(E).ErrorCode=EDB_Error_SessionNotFound
then
begin
// Exception in Logdatei Protokollieren
end;
end;
end;
Es sollte eigentlich so sein, dass hier nur das EDB_Error_SessionNotFound behandelt wird und alle anderen Exceptions unangetastet bleiben. Die werden aber auch verschluckt, was ich jetzt weiß.
Ich habe jetzt mal ein Application.ShowException(E) eingebaut. Dann funktioniert es wie gewohnt.