Frage einen IOError in Python abfangen


Ich habe eine Methode geschrieben, die einige Sachen macht und schlechte Dateinamen fängt. Was passiert, wenn der Pfad nicht existiert, wird ein IOError ausgelöst. Allerdings hält es meine Ausnahmebehandlung für eine schlechte Syntax ... warum?

def was auch immer ():
    Versuchen:
        # Sachen machen
        # und mehr Zeug
    außer IOError:
        # mach das
        bestehen
was auch immer()

aber bevor es überhaupt anruft whatever(), es druckt folgendes:

Traceback (letzter Aufruf zuletzt):
  Datei "", Zeile 1, in
  Datei "getquizzed.py", Zeile 55
    außer IOError:
         ^
SyntaxError: Ungültige Syntax

wenn importiert ... helfen ?!


10
2018-02-02 00:14


Ursprung


Antworten:


Überprüfen Sie Ihre Einrückung. Das ist nicht hilfreich SyntaxError Fehler hat hat mich schon mal getäuscht. :)


9
2018-02-02 00:16



Ich vermisse etwas in deinem try blockieren, d.h. pass oder irgendetwas, sonst gibt es einen Einrückungsfehler.


2
2018-02-02 00:19



Es gibt noch eine Möglichkeit, wenn Sie eine ältere Installation bevorzugen

und

Sie verwenden die 'as' -Syntax:

except IOError as ioe:

und

der Parser wird auf "wie" gestolpert.

Verwenden as ist die bevorzugte Syntax in Python 2.6 und besser.

Es ist ein Syntaxfehler in Python 2.5 und älter. Verwenden Sie für Pre-2.6:

except IOError, ioe:


2
2017-08-14 16:05



Sie erhalten einen Syntaxfehler, wenn Sie nicht etwas in die Seite stellen try Block. Du kannst Geben pass nur um den Raum zu halten:

try:
    # do stuff
    # and more stuff
    pass
except IOError:
    # do this
    pass

1
2018-02-02 00:17