Es steckt definitiv CompilerMagic drin, denn ich kämpfe selbst seit Monaten damit. Obwohl ich nicht nur die Exceptionklasse neu aufgesetzt hab, sondern auch noch ein eigenes
Exception-Handlich aufgesetzt hab.
Hab mich da weitestgehends an die SysUtils-QuellCodes gehalten und dennoch tauchen da einige Probleme auf (mal abgesehn, das ich mit
Unicode arbeite und nur in der DebugVersion den FehlerText als AnsiString drin hab (für den Debuger, da der kein
Unicode "kann".
Man kann leicht selber prüfen, daß die "SysUtils.dcu" nicht mit der SysUtils.pas übereinstimmt ... einfach mal die SysUtils.pas in das Projektverzeichnis kopieren, dann wird diese verwendet, stadt der vorkompilierten Version und schon wird man merken, daß das ExceptionHandling im Programm nicht mehr funktioniert, obwohl man ja davon ausgehen kann, daß das ExeptionHandling sich augrung der "gleichen" QuellCodes nicht geändert haben sollte.
Aber nochmal zu deinem Problem ... du mußt, wenn du das Exceptionhandling von Delphi verwendest deine ExceptionKlasse von
EXCEPTION ableiten, da innerhalb der Exceptionbehandlung sozusagen auf "is
Exception" geprüft wird, wenn es zur Anzeige/Abarbeitung der
exception komme und wenn die Klasse nicht von
Exception abgeleitet wird, dann wird nur der Standardfehlerdialg angezeigt "Fehler xyz auf Adresse abc".
Bei meiner Behandlung prüfe ich daher nicht über die
RTTI, sondern den Namen der Klasse, das ist vorallem wichtig, weil ich meine Behandlung Programmweit initialisiere und somit die
Exception auch in 'nem anderen Modul, also mit 'ner anderen Klassendefiniton behandelt werden könnte und somit die Prüfung per IS fehlschlagen würde und natürlich für die Kompatbilität zu Delphi's Exceptionsklassen.