Fehlermeldung ausgeben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Killigen
User
Beiträge: 48
Registriert: Freitag 6. März 2015, 10:46

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
Killigen
User
Beiträge: 48
Registriert: Freitag 6. März 2015, 10:46

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...
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Das Exception-Tutorial hast du durchgearbeitet?
Das Leben ist wie ein Tennisball.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
Antworten