2010-08-12 22 views
5

Çerçevem ​​şu kodu çalıştırmaya çalıştığımda bir sözdizimi hatası veriyor:Benim insan derleyicim ol: Bu Python 2.5 kodunda sorun nedir?

 from django.template import Template, TemplateSyntaxError 
    try: 
     Template(value) 
    except TemplateSyntaxError as error: 
     raise forms.ValidationError(error) 
    return value 

Ve hata şu:

 from template_field import TemplateTextField, TemplateCharField 
     File "C:\django\internal\..\internal\cmsplugins\form_designer\template_field.py", line 14 
     except TemplateSyntaxError as error: 
            ^
    SyntaxError: invalid syntax 

Neler oluyor?

cevap

17

:

try: 
    pass 
except TemplateSyntaxError as error: 
    Template(value) 
    raise forms.ValidationError(error) 
return value 

Ama Django benim (sınırlı) bilgiye dayalı, ben bunun yerine böyle bir şey istiyorum tahmin ediyorum alternatif sözdizimi except SomeException as erris new in 2.6. 2.5'te except SomeException, err kullanmalısınız.

+0

Harika! Teşekkürler. –

3

Deneme bloğunuzun içinde hiçbir şey yok. bir deneme/blok benziyor hariç:

try: 
    do_something() 
except SomeException as err: 
    handle_exception() 
6

Sen Python böyle boş try blok olamaz. Sadece blokta hiçbir şey yapmak istiyorsanız (prototip kodu derler), pass anahtar kelime kullanın:

from django.template import Template, TemplateSyntaxError 
try: 
    pass 
except TemplateSyntaxError as error: 
    Template(value) 
    raise forms.ValidationError(error) 
return value 

Düzenleme: Bu soruya orijinal sürümünü cevaplar. Bunu, kâhya için bırakacağım, fakat soru şu anda düzenlenmiş ve Jleedev'in gözden geçirilmiş soruya doğru cevabı var.

4

Hiçbir şey deneyemezsiniz. Gerçekten denemek için hiçbir şey varsa, pass anahtar kelimeyi kullanın:

try: 
    return Template(value) 
except TemplateSyntaxError as error: 
    raise forms.ValidationError(error) 
+0

Teşekkürler, siz çivilenmişsiniz - Yanlış kodunuzu yapıştırdım, temelde düzeltmenizle eşleşiyor. Yine de, orijinal sorumu yansıtması için değiştirdiğim gibi, bir hata alıyorum. –

1

Python'daki her satırda bir şeyler yapmalısınız ya da bir şey yapmak istemiyorsanız pass ifadesini kullanın!

İlgili konular