![]() |
AW: Anwendung zur Dateierweiterung aus der Registry lesen
Nein, die API löst keine Exception aus
|
AW: Anwendung zur Dateierweiterung aus der Registry lesen
Verdammt übersehen,weil ich es immer da setze, wo ich die Funktion verlasse und nicht irgendwo mitten drin.
Die API Funktion löst mit Sicherheit keine Exception aus. Sie hat ja Rückgabewerte. Die Exception musst schon du auslösen. |
AW: Anwendung zur Dateierweiterung aus der Registry lesen
Lies aber nochmal genau nach, wann die Funktion erfolgreich ist:
Zitat:
|
AW: Anwendung zur Dateierweiterung aus der Registry lesen
@Dalai: Danke für den Tipp. Du hast natürlich recht. Das >= ist falsch.
Delphi-Quellcode:
Result := Handle > 32;
|
AW: Anwendung zur Dateierweiterung aus der Registry lesen
Zitat:
Muss es immer ein Krachbum Error-Messagebox sein mit der Info am Ende seines Weißheit zu sein? Sicher, manchmal geht es nicht anders, was soll man also noch machen wenn es keine Lösung gibt. Dann aber frage ich mich was ein Browser machen würde wenn er bei jedem Fehler in einer HTML-Datei aussteigen würde. Dann sage ich mir aber auch - warum die Mühe? Eine anständige Fehlermeldung erspart dir viel Arbeit. Und das Beste - keine wird dir Vorwürfe machen, schon gar nicht danken, wenn du statt einer Fehlermeldung versuchst den Fehler zu reparieren. |
AW: Anwendung zur Dateierweiterung aus der Registry lesen
Die Frage "Exception werfen" stellt sich doch bei einem WinAPI-Aufruf nicht, weil sowieso keine geworfen wird. Folglich gibt es auch nichts zu reparieren.
Es geht also lediglich um die Auswertung des Rückgabewertes. Was ich mit dem Rückgabewert "AResult" in der aufrufenden Prozedur mache, kann und möchte ich situationsbezogen entscheiden. Darum finde ich persönlich (jeder darf und soll seine eigene Variante für besser finden) diesen Weg für praktikabel, weil flexibel anwendbar. Ob man für den Rückgabewert des Exe-Dateinamens und des möglichen Fehlertextes im Klartext jeweils eine eigene Variable nimmt, ist eine Designfrage. Ich mag's lieber kompakt, weil ich meinen Code leider öfter lesen als schreiben muss. Muss was mit dem Alter zu tun haben :?: |
AW: Anwendung zur Dateierweiterung aus der Registry lesen
Exceptions sind Teil der strukturierten Programmierung. Ist vielleicht Geschmackssache, ob man welche wirft und wann und wie. Aber wenn ich mit Klassen arbeite kannich einfach eine Methode nach der anderen aufrufen und die Fehlerbehandlung zentral an einer Stelle abhandeln. Hat den Vorteil, dass ich nicht zich if-then Ebenen habe und in der 10. dann gucken muss, wo ich eigentlich bin und ob alle Bedingungen noch Konsistent sind. Beispiel:
Delphi-Quellcode:
Jetzt der Code mit Exceptions:
if funca then
begin if funcb then begin if funcc then begin // irgendwas else // irgendwas end else //irgendwas end else // irgendwas end;
Delphi-Quellcode:
funca ();
begin if not APIFunc then RaiseLastOSError; end;
Delphi-Quellcode:
try
funca; funcb; funcc; execpt ShowMessage(EcodeToString(Exception.ECode)); end; Das funktioniert natürlich nur, wen die Funktionen Exceptions werfen. Und da kann es schon sinnvoll sein eine API Funktion so zu kapseln, dass sie eine Exception wirft. Siehe auch: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 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