ich versuch grad eine Anwendung welche schon fertig ist, aber kleinere Zugriffsverletzung auftreten, den fehler zu finden.
Es gelingt mir aber absolut nicht, da es ein fehler ist, der mal ab und zu mal auftritt und das program schon so komplex geworden ist, das ich nich alles neu machen kann.
Grade weils für die firma is Ist nen Datenbank system :p
Auf jedemfall, es gibt in delphi ne möglich Fehler die kommen abzufangen und selbst zu verarbeiten.
Application.OnException.
Damit kann man die Message und Klasse abfragen, EAccessViolation, EAbstractError, EDivisionByZero usw.
Aber mehr irgendwie nicht, oder ich bin zu doof das rauszufinden.
Ich würde gerne wissen, ob man mehr infos aus der E.Exception herausfinden kann.
Z.b., in welcher Klasse der Fehler aufgetreten ist z.b. Wie die klasse heisst.
Am besten wäre natürlich auch ne Zeile ausgeben zu lassen, welche zeile den fehler verursachte :p Aber das geht wohl nich denk ich.
Das sollte die Rücksprungadresse zurückgeben, mit deren Hilfe du den Fehler finden kannst: Anwendung ausführen, dann Suchen -> Laufzeitfehler suchen. Das funktioniert allerdings nur, wenn AppException ohne Umwege aufgerufen wurde - stellt sich schnell heraus, wenn du es ausprobierst und immer die identische Adresse zurückkommt.
interessant könnte auch ExceptAddr sein, wenn ReturnAddr nicht funktioniert - was gut sein kann, wenn ich mich so ein wenig durch den VCL Code wühle (in Delphi5 liegt das gute Stück in der SysUtils).
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Nur so ne dumme Frage. Siehst du das denn nicht im Debugger? Eine große Anzahl an Exceptions sind sofort im Debugger sichtbar. Also direkt die Quellcodestelle wo sie geraised werden. Dann hast du meistens eigentlich auch schon alles was man braucht.
Schau mal bei den Jedis vorbei. In deren JVCL oder JCL Lib ist ein Exception-Dialog. Wenn du die Libs installierst, hast du eine Option im Delphi-Menu, Debug-Infos in die Exe einzubinden (=komprimiertes MAP-File). Dann einfach den Exceltion-Dialog uses und wenn die Exception auftritt, werden Detail-Infos wie Name der Unit- Zeile etc. ausgegeben. Geniale Sache!
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Lieder kann ich in dem Fall nix mit Debugger anfangen, da er zu keiner zeile spring wenn der fehler gefunde wurde Leider isses auch so, das ich den fehler ums verrecken nich nachvollziehen kann, der kommt mal oder kommt nicht
Rchtig toll ist natürlich wenn man so Fehlermeldungen wie die Unreal Engine mit seitenlangem StackTrace erzeugen kann. Dann ist selbst der Fehlerfall noch was Besonderes.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.