代码之家  ›  专栏  ›  技术社区  ›  Brian D

做我的人类编译器:这个python 2.5代码有什么问题?

  •  5
  • Brian D  · 技术社区  · 14 年前

    我的框架在尝试执行此代码时引发语法错误:

        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
    

    发生什么事?

    5 回复  |  直到 14 年前
        1
  •  17
  •   Josh Lee ZZ Coder    14 年前

    替代语法 except SomeException as err is new in 2.6 . 你应该使用 except SomeException, err 2.5。

        2
  •  6
  •   bcat    14 年前

    你不能有空的 try 在python中是这样的块。如果您只想在块中不做任何事情(例如,对于原型代码),请使用 pass 关键词:

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

    编辑:回答问题的原始版本。我会留给子孙后代,但问题现在已被编辑,并且@jledev对修订后的问题有正确的答案。

        3
  •  4
  •   Thomas    14 年前

    你不能什么都不试。如果您真的没有什么可尝试的,请使用 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)
    
        4
  •  3
  •   michael    14 年前

    你的试块里什么都没有。 Try/Except块如下所示:

    try:
        do_something()
    except SomeException as err:
        handle_exception()
    
        5
  •  1
  •   Peter Mortensen TravisEz13    14 年前

    在python的每个块中,您应该做一些事情,或者如果不想做一些事情,请使用 pass 声明!