2010-08-12 14 views
5

जब मैं इस कोड को निष्पादित करने का प्रयास करता हूं तो मेरा ढांचा एक वाक्यविन्यास त्रुटि उठा रहा है:मेरा मानव संकलक बनें: इस पायथन 2.5 कोड के साथ क्या गलत है?

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

और यहां त्रुटि है:

 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 

क्या चल रहा है?

उत्तर

17

वैकल्पिक वाक्यविन्यास except SomeException as erris new in 2.6। आपको 2.5 में except SomeException, err का उपयोग करना चाहिए।

+0

बहुत बढ़िया! धन्यवाद। –

3

आपके पास अपने प्रयास ब्लॉक के अंदर कुछ भी नहीं है। आज़माएं/छोड़कर ब्लॉक की तरह दिखता है:

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

आप एक खाली try ब्लॉक कि अजगर की तरह नहीं हो सकता। तुम सिर्फ ब्लॉक में कुछ भी नहीं करना चाहते हैं (प्रोटोटाइप कोड के लिए, कहते हैं), pass कीवर्ड का उपयोग करें:

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

संपादित करें: इस सवाल के मूल संस्करण के जवाब। मैं इसे जन्म के लिए छोड़ दूंगा, लेकिन सवाल अब संपादित किया गया है, और @jleedev के संशोधित प्रश्न का सही उत्तर है।

4

आप कुछ भी नहीं आजमा सकते हैं। क्या तुम सच में प्रयास करने के लिए कुछ भी नहीं है, तो pass कीवर्ड का उपयोग करें:

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

लेकिन मेरी (सीमित) Django के ज्ञान के आधार पर, मुझे लगता है कि चाहते हैं आप के बजाय कुछ इस तरह हैं:

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

धन्यवाद, आपने इसे दबाया - मैंने गलत कोड चिपकाया हालांकि, जो मूल रूप से आपके सुधार से मेल खाता है। फिर भी एक त्रुटि हो रही है, क्योंकि मैंने मूल प्रश्न को प्रतिबिंबित करने के लिए संशोधित किया है। –

1

पायथन में प्रत्येक ब्लॉक में आपको कुछ करना चाहिए, या यदि आप कुछ करना नहीं चाहते हैं तो pass कथन का उपयोग करें!

संबंधित मुद्दे