2013-02-16 18 views
15

Mam SyntaxError na moim wyjątkiem:Co jest nie tak z moim wyjątkiem?

try: 
    opts, args = getopt.getopt(sys.argv[1:], 'P:D:H:d:u:p:nvhmJi:c:Ml:TB:', 
      ['host=', 'port=', 'directory=', 'user=', 'password=', 
      'daemon=', 'noauth', 'help', 'verbose', 'mysql', 
      'icounter=', 'config=', 'nolock', 'nomime', 'loglevel', 'noiter', 
      'baseurl=']) 
except getopt.GetoptError, e: 
    print usage 
    print '>>>> ERROR: %s' % str(e) 
    sys.exit(2) 

pojawia się błąd:

File "main.py", line 199 

except getopt.GetoptError, e: 

SyntaxError: invalid syntax 

ktoś ma jakiś pomysł?

+1

Spróbuj 'z wyjątkiem getopt.GetoptError jako e'? – cnicutar

+1

Zobacz tę dyskusję dotyczącą tego samego problemu: http://stackoverflow.com/questions/2535760/python-try-except-comma-vs-as-in- zewnątrz –

Odpowiedz

5

Twój składnia jest nieprawidłowy do połowu wyjątek

Trzeba było napisane except getopt.GetoptError as e: zamiast except getopt.GetoptError, e:

+1

To była poprawna składnia we wcześniejszych wersjach Pythona , chociaż. – tripleee

28

użyć python3 oraz w python3 the raise syntax no longer accepts comma-separated arguments.

Zastosowanie as zamiast:

except getopt.GetoptError as e: 

Ta forma jest wstecznie kompatybilny z 2,6 do 2,7.

+0

OK, dzięki! działa teraz =) – lagarkane

+0

Dodam, że jeśli OP chce kodu zgodnego z pythonem <2.6, powinien użyć 'except 'z getopt.GetoptError:' a następnie pobrać informację o błędzie za pomocą 'sys.exc_info()' – Bakuriu

Powiązane problemy