![]() |
AW: Dateiverschlüsselung mit DEC (5.2)
wär auch komisch gewesen, wenn das nicht klappt. :-D
|
AW: Dateiverschlüsselung mit DEC (5.2)
Hi Alex,
Zitat:
![]() Die Fehlermeldungen werden in der DEC 5.3 schon etwas besser, mal gucken, ob ich diesen spezialgelagerten Sonderfall irgendwie noch etwas hübscher machen kann. Gruß, Assertor |
AW: Dateiverschlüsselung mit DEC (5.2)
Zitat:
Das System bekommt eine 4 Bytes ID, ausgelesen aus einer falsch kodierten Datei. Das System findet unter dieser ID keine registerierte Klasse. Die Funktion die diese Klasse ermittelt bekommt als Parameter nur diese ID und kann somit auf Grund fehlender Informationen auch nur einen Fehler bringen der sagt: Hallo ? Unter dieser ID wurde keine Klasse registriert. Der Punkt ist also: Derjenige der diese DEC Funktionen in higher-level Funktionen benutzt hat sicher zu stellen das auch eine aussagekräftigere Fehlermeldung erfolgt wenn seine Funktion auf falschen Daten arbeitet. In meinen Augen gibt es also kein Defizit im DEC sondern nur in der Art&Weise wie der Programmier das DEC benutzt hat. Mal einfach gefragt: wie soll DECClassByIdentity(ID: Cardnal); denn hellsehen können das der Programmierer diese Funktion aus einem Kontext heraus benutzt in dem er in seiner Funktion eine ungültige Datei übergeben kann ? Du kannst da versuche was du willst, aus Sicht der Funktion DECClassByIdentity() steht dir nur die ID und die Liste aller registrierten DEC Klassen als Information zur Verfügung. Und wenn es keine Klasse mit dieser ID gibt dann kann der Fehler nur lauten: Es gibt keine registrierte Klasse mit dieser ID. Spätestens nach dieser Fehlermeldung ist klar: 1.) entweder wurde die Klasse nicht registriert 2.) oder die ID ist falsch Übrigens: die IdentityBase, wenn man sie verändert, sollte immer vor allen Aufrufen von TDECClass.Register manipuiliert werden. Das Identity-System im DEC kann ID-Duplikate nicht ausschließen per se. Deshalb wird beim .Register einer Klasse auch überprüft ob es eine andere Klasse gibt die die gleiche ID besitzt. Sollte das der Fall sein muß Identitybase auf einen anderen Wert gesetzt werden. Die Vorgehensweise ist also so: 1.) Identitybase auf eigenen Wert setzen 2.) alle zu benutzenden und zukünftig zu benutzenden DEC Klassen registrieren. 3.) kommt es zu einem Fehler, von wegen nicht eindeutige ID, dann neue IdentityBase wählen und bei Punkt 2.) weiter machen. Gruß Hagen PS: sorry das ich erst jetzt auf diesen Thread gestoßen bin, sonst hätte ich dir schon viel früher helfen können. |
AW: Dateiverschlüsselung mit DEC (5.2)
Hallo Hagen,
Zitat:
Mein Hinweis auf die Änderungen an der Fehlerbehandlung bezogen sich auf den DEC 5.3 Thread, wo ich iirc bereits auf vererbte Exceptiontypen eingehe. Dies läßt differenziertere Behandlung von Fehlerfällen auf nachgelagerten Schichten zu. Gruß, Assertor Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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