2013-11-18 17 views
6

Basit bir istisna işleme yazmaya çalışıyorum. Ancak yanlış bir şey yapıyorum gibi görünüyor.Geçersiz sözdizimi hatası 'ValueError dışında' nasıl düzeltilir?

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

Gösterdiğiniz kod ve istisnai durum birbiriyle çelişir. Size yardımcı olabilmek için, * gerçek * kodu ve * gerçek * istisnayı, bazı yaklaşımları görmemiz gerekir. – NPE

+0

Ve lütfen sabitler haricinde CAPITALS kullanmayın. Kullandığınız bu değişkenlerin hiçbiri sabit değildir. –

+0

Bu gerçek kod ve gerçek istisnadır. –

cevap

7

Burada yanlış olan iki şey var. Birincisi, Hataları çevrelemek için parantez gerekir:

except (ValueError,IOError) as err: 

İkinci, o except hattı ile gitmek için try gerekir:

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) 

excepttry olmadan kullanılamaz.

+0

Teşekkür ederim, Çalıştı! –

İlgili konular