Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi try...except - Manuell in except springen (https://www.delphipraxis.net/119013-try-except-manuell-except-springen.html)

Die Muhkuh 19. Aug 2008 16:35

Re: try...except - Manuell in except springen
 
Warum eigentlich try...except hier?

Delphi-Quellcode:
if Form1.Label1.Caption <> 'Administrator' then
begin
  try
    // Code ausführen, der try...except braucht.
  except
    // Mach hier auch irgendwas
  end;
end
else
  ShowMessage('Fehler!');
Fände ich sinnvoller.

Yheeky 19. Aug 2008 16:57

Re: try...except - Manuell in except springen
 
@sirius: Genau das wollte ich wissen. Danke!! :-)

Jelly 19. Aug 2008 20:29

Re: try...except - Manuell in except springen
 
Zitat:

Zitat von Die Muhkuh
Warum eigentlich try...except hier?

Das ist eine Interpretationsfrage. Ich würde dabei sogar noch weiter gehen, und eine eigene NoAdministratorException Klasse definieren, und diese dann auslösen. Um das Abfangen der Exception würde ich mich in dem Block des Programms überhaupt nicht kümmern. Wenn versucht wird, als nicht-Admin den Code auszuführen, fliegt dir die Exception um die Ohren. Und genau das ist Sinn der Sache. (Wenn du in windows ohne die nötigen Rechte versuchst eine Datei zu löschen, fliegt dir auch die Fehlermeldung um die Ohren.

Es ist nicht Sinn von Exception, vorhersehbare Fehler abzufangen, sondern wenn ein Programmteil nicht funktioniert (hier wegen mangenlden Rechten), eben einfach eine Exception auszulösen. Es ist an der aufrufenden Stelle dann dafür zu sorgen, wie die Exception interpretiert werden soll. Und wenn eine eigene Exception Klasse definiert wird, ist es auch gleich klar für den Aufrufer, was schief gelaufen ist.

Die Muhkuh 19. Aug 2008 20:31

Re: try...except - Manuell in except springen
 
Wäre es da nicht gleich sinnvoller zu überprüfen, ob das eigene Programm Adminrechte hat und wenn nicht, gleich einen Hinweis einzublenden und den entsprechenden Button zu deaktivieren?

Wobei es hier, so glaube ich, auch nicht um den richtigen Administrator geht, sondern nur um einen Status in seiner Software.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz