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.