AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Nicht behandelte Exception in DLL zentral behandeln

Nicht behandelte Exception in DLL zentral behandeln

Ein Thema von Bernhard Geyer · begonnen am 14. Nov 2014 · letzter Beitrag vom 20. Jan 2015
 
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Nicht behandelte Exception in DLL zentral behandeln

  Alt 14. Nov 2014, 14:31
Ganz einfach:

Man reicht einfach keine Exceptions über die DLL-Grenzen hinaus. Es gibt Rückgabewerte und die Rückgabewerte können geprüft werden. Zusätzlich kann es noch etwas wie MSDN-Library durchsuchenGetLastError geben.

Die Exception selber wirft dann die Anwendung, die die DLL benutzt (z.B. so wie Delphi-Referenz durchsuchenRaiseLastOSError)
Der "normale" läuft ja über Rückgabecodes. Jedoch wurde bei der Schnittstelle das Exceptionhandling vollkommen außer acht gelassen.
Das jetzt nachzubauen (Tritt ja erst auf nachdem wir XE6 verwenden statt bisher D6, Alles auf einen Schlag umstellen geht auch nicht) würde Wochen dauern. Hier muss ein Lösung her die das auf über Hooking oder ähnliches direkt löst.

Wenn jetzt die Exception im D6-Teil erzeugt wird erkennt ja die XE6-Verison das es sich um eine Delphi-Exception handelt. (System._HandleAnyException). Es kracht dann beim Zugriff auf den RaiseListPtr (System.ExceptObject).

Meine Idee wäre jetzt auf dieser Ebene (Vermutlich würde Hooking von TApplication.HandleException reichen) und eine Erkennung einzubauen ob das Exception-Objekt wirklich ein D6.TObject ist. Falls nein dann die Plugins fragen ob dieses Objekt von ihnen kommt und dann über die DLL-Schnittstelle den Exception-Text abfragen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz