Seite 1 von 1
Fehlermeldung ausgeben
Verfasst: Dienstag 24. März 2015, 07:51
von Killigen
Hallo Leute!
Ich habe ein recht komplexes Script zu Initalisierung eines NVRAM geschrieben.
Meine Frage: Wenn der User in einer *.ini Datei dem Programm zu wenig Speicher zur Verfügung stellt, möchte ich ihn das wissen lassen und das Programm mit einer Fehlermeldung abbrechen...
Wie realisiert man sowas in Python? Mit Exceptions wie in Java oder gibt es das gar nicht bzw. einfachere Methoden?
Danke für eure Hilfe!
Gruß
Killigen
Re: Fehlermeldung ausgeben
Verfasst: Dienstag 24. März 2015, 07:58
von EyDu
Ja, löse das am besten über eine Exception. Wenn du dem Benutzer am Ende eine saubere Fehlermeldung ausgeben willst, dann leitest du am besten von Exception ab und behandelst deine Ausnahme an geeigneter Stelle.
Re: Fehlermeldung ausgeben
Verfasst: Dienstag 24. März 2015, 08:25
von Killigen
Aber ich bin nicht ganz sicher, wie ich das umsetzen soll...
Ich habe eine Liste an die ich immer wieder eine neue dranhänge mit .append
Und wenn der neue Eintrag die Länge einer globalen Variablen überschreitet soll das Programm abgebrochen werden incl. Fehlermeldung...
Re: Fehlermeldung ausgeben
Verfasst: Dienstag 24. März 2015, 08:31
von EyDu
Das
Exception-Tutorial hast du durchgearbeitet?
Re: Fehlermeldung ausgeben
Verfasst: Dienstag 24. März 2015, 09:12
von snafu
Killigen hat geschrieben:Aber ich bin nicht ganz sicher, wie ich das umsetzen soll...
Du prüfst die Bedingung "in den Tiefen" deines Codes. Wenn sich daraus der Fehlerfall ergibt, dann wirfst du dort die Exception. Eine für den Benutzer gedachte Oberfläche läuft nun üblicherweise aus einer `main()`-Funktion heraus. Diese Funktion stößt den Programmablauf an und sollte auch auf mögliche Exception lauschen mittels `try ... except`-Block. Falls die Exception dann aufgetreten, kann zum Beispiel so (unter Python 3.x) eine Fehlermeldung ausgegeben werden:
Code: Alles auswählen
def main():
try:
interne_programmfunktion()
except DeineException as exc:
print('ERROR:', exc, file=sys.stderr)
# oder:
# sys.exit('ERROR: {}'.format(exc))
Beachte, dass Fehlermeldungen wirklich nur auf der obersten Schicht eines Programms tatsächlich als Text ausgegeben werden sollten. An allen anderen Stellen sind immer Exceptions das Mittel der Wahl. Exception werden nämlich praktischerweise automatisch in der Aufrufhierarchie nach oben gereicht bis sie irgendwann abgefangen werden. Das kennst du wahrscheinlich auch schon so aus anderen Programmiersprachen.