2013-11-18 12 views
6

Sto provando a scrivere una semplice gestione delle eccezioni. Comunque sembra che stia facendo qualcosa di sbagliato.Come correggere l'errore di sintassi non valido su 'except ValueError'?

def average(): 
    TOTAL_VALUE = 0 
    FILE = open("Numbers.txt", 'r') 

    for line in FILE: 
     AMOUNT = float(line) 
     TOTAL_VALUE += AMOUNT 
     NUMBERS_AVERAGE = TOTAL_VALUE/AMOUNT 
    print("the average of the numbers in 'Numbers.txt' is :", 
     format(NUMBERS_AVERAGE, '.2f')) 

    FILE.close() 

    except ValueError,IOError as err: 
     print(err) 

average() 

> line 14 
>   except ValueError as err: 
>   ^
>  SyntaxError: invalid syntax 
+1

Il codice e l'eccezione che si mostrano sono in contrasto tra loro. Per essere in grado di aiutarti, dobbiamo vedere il * codice * effettivo e l'eccezione * effettiva *, non alcune approssimazioni. – NPE

+0

E per favore non usare MAIALE ad eccezione delle costanti. Nessuna di quelle variabili che usi sono costanti. –

+0

Questo è il codice effettivo e l'eccezione effettiva. –

risposta

7

Ci sono due cose sbagliate qui. In primo luogo, È necessario parentesi per racchiudere gli errori:

except (ValueError,IOError) as err: 

In secondo luogo, è necessario un try di andare con quella linea except:

def average(): 
    try: 
     TOTAL_VALUE = 0 
     FILE = open("Numbers.txt", 'r') 

     for line in FILE: 
      AMOUNT = float(line) 
      TOTAL_VALUE += AMOUNT 
      NUMBERS_AVERAGE = TOTAL_VALUE/AMOUNT 
     print("the average of the numbers in 'Numbers.txt' is :", 
      format(NUMBERS_AVERAGE, '.2f')) 

     FILE.close() 

    except (ValueError,IOError) as err: 
     print(err) 

except non possono essere utilizzati senza try.

+0

Grazie, ha funzionato! –

Problemi correlati